stringtranslate.com

Apache Уикет

Apache Wicket , обычно называемый Wicket , является компонентным фреймворком веб-приложений для языка программирования Java, концептуально похожим на JavaServer Faces и Tapestry . Первоначально он был написан Джонатаном Локком в апреле 2004 года. Версия 1.0 была выпущена в июне 2005 года. Он перешел в проект верхнего уровня Apache в июне 2007 года. [2]

Обоснование

Традиционные фреймворки модель-представление-контроллер (MVC) работают с точки зрения целых запросов и целых страниц. В каждом цикле запроса входящий запрос сопоставляется с методом на объекте контроллера , который затем генерирует исходящий ответ в полном объеме, обычно путем извлечения данных из модели для заполнения представления, написанного в специализированной разметке шаблона . Это сохраняет поток управления приложением простым и понятным, но может затруднить повторное использование кода в контроллере.

Напротив, Wicket тесно связан с такими структурами GUI с сохранением состояния , как Swing . Приложения Wicket представляют собой деревья компонентов , которые используют делегатов -слушателей для реагирования на HTTP- запросы к ссылкам и формам таким же образом, как компоненты Swing реагируют на события мыши и нажатия клавиш. Wicket классифицируется как компонентно-ориентированная структура.

Дизайн

Wicket использует простой XHTML для шаблонизации (что обеспечивает четкое разделение логики представления и бизнес-логики и позволяет редактировать шаблоны с помощью обычных инструментов дизайна WYSIWYG [3] ). Каждый компонент привязан к именованному элементу в XHTML и становится ответственным за рендеринг этого элемента в конечном выводе. Страница это просто компонент верхнего уровня, содержащий компонент, и она связана ровно с одним шаблоном XHTML. Используя специальный тег, группа отдельных компонентов может быть абстрагирована в один компонент, называемый панелью , который затем может быть повторно использован целиком на этой странице, других страницах или даже других панелях.

Каждый компонент поддерживается собственной моделью, которая представляет состояние компонента. Фреймворк не имеет знаний о том, как компоненты взаимодействуют со своими моделями, которые рассматриваются как непрозрачные объекты, автоматически сериализуемые и сохраняемые между запросами. Однако более сложные модели могут быть сделаны отделяемыми и предоставлять хуки для организации собственного хранения и восстановления в начале и конце каждого цикла запроса. Wicket не предписывает какой-либо определенный уровень сохранения объектов или ORM , поэтому приложения часто используют некоторую комбинацию объектов Hibernate [ требуется ссылка ] , EJB или POJO в качестве моделей.

В Wicket все серверные состояния управляются автоматически. Никогда не следует напрямую использовать объект HttpSession или подобную оболочку для хранения состояния. Вместо этого состояние связано с компонентами. Каждый серверный компонент страницы содержит вложенную иерархию компонентов с состоянием, где модель каждого компонента в конечном итоге является POJO (Plain Old Java Object)

Wicket стремится к простоте. В Wicket нет файлов конфигурации, которые нужно изучать. Wicket — это простая библиотека классов с последовательным подходом к структуре компонентов.

Пример

Приложение Hello World Wicket с четырьмя файлами:

HelloWorld.html
Шаблон XHTML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns= "http://www.w3.org/1999/xhtml" xmlns:wicket= "http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" xml:lang= "en" lang= "en" >     <body> <span wicket:id= "message" id= "message" > Сообщение будет здесь </span> </body> </html>     
HelloWorld.java
Компонент страницы, который будет привязан к шаблону. Он, в свою очередь, привязывает дочерний компонент (компонент Label с именем "message").
пакет org.wikipedia.wicket ; импорт org.apache.wicket.markup.html.WebPage ; импорт org.apache.wicket.markup.html.basic.Label ;  public class HelloWorld extends WebPage { /**  * Конструктор  */ public HelloWorld () { add ( new Label ( "message" , "Hello World!" )); } }             
HelloWorldApplication.java
Основной класс приложения, который направляет запросы на домашнюю страницу компоненту страницы HelloWorld.
пакет org.wikipedia.wicket ; импорт org.apache.wicket.protocol.http.WebApplication ; public class HelloWorldApplication extends WebApplication { /**  * Конструктор.  */ public HelloWorldApplication () { }           /**  * @see org.apache.wicket.Application#getHomePage()  */ public Class getHomePage () { return HelloWorld . class ; } }       
веб.xml
Дескриптор развертывания приложения сервлета , который устанавливает Wicket в качестве обработчика по умолчанию для сервлета и обеспечивает создание экземпляра HelloWorldApplication при запуске.
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns= "http://java.sun.com/xml/ns/javaee" xmlns:web= "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation= "http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id= "WebApp_ID" version= "2.5" > <display-name> Пример Wicket </display-name> <filter> <filter-name> HelloWorldApplication </filter-name> <filter-class> org.apache.wicket.protocol.http.WicketFilter </filter-class> <init-param> <param-name> applicationClassName </param-name> <param-value> org.wikipedia.wicket.HelloWorldApplication </param-value> </init-param> </filter> <filter-mapping> <filter-name> HelloWorldApplication </filter-name> <url-pattern> /* </url-pattern> </filter-mapping> </web-app>                        

Компоненты

Базовые компоненты, такие как формы, ссылки, повторители и т. д., встроены.

Релизы

Смотрите также

Ссылки

Примечания

  1. ^ https://wicket.apache.org/news/2024/03/. {{cite web}}: Отсутствует или пусто |title=( помощь )
  2. ^ Дашорст, Мартейн (20 июля 2007 г.). «Wicket выпускники Apache Incubation» . Проверено 7 марта 2008 г.
  3. ^ Карлтон, Дэниел (2007-10-12). "Java Web Development the Wicket Way". DevX. Архивировано из оригинала 10 марта 2008 года . Получено 2008-03-07 .
  4. ^ Анонс Apache Wicket 10: создавайте современные веб-приложения с помощью Java!. wicket.apache.org. Получено 11.03.2024.
  5. ^ Анонс Apache Wicket 9: войдите в современный мир Java!. wicket.apache.org. Получено 05.10.2020.
  6. ^ Анонс Apache Wicket 8: меньше пиши, больше достигай. wicket.apache.org. Получено 22.05.2018.
  7. ^ Выпущен Apache Wicket v7.0. wicket.apache.org. Получено 16.04.2018.
  8. ^ Выпущен Apache Wicket v6.0.0. wicket.apache.org. Получено 05.10.2020.
  9. ^ Apache Wicket - Apache Wicket выпускает Wicket 1.5. Wicket.apache.org. Получено 13.08.2013. Архивировано 6 октября 2014 г. на Wayback Machine
  10. ^ Apache Wicket - Apache Wicket 1.4 выводит безопасность типов на новый уровень Архивировано 25 апреля 2012 г. на Wayback Machine . Wicket.apache.org. Получено 13 августа 2013 г.

Внешние ссылки

Официальный сайт