Apache Wicket - Apache Wicket
Apache Wicket, обычно называемый Калитка, является компонентным каркас веб-приложений для Язык программирования Java концептуально похож на JavaServer Faces и Гобелен. Первоначально он был написан Джонатаном Локком в апреле 2004 года. Версия 1.0 была выпущена в июне 2005 года. Apache проект верхнего уровня в июне 2007 года.[4]
Обоснование
Традиционный модель-представление-контроллер (MVC) фреймворки работают в целом Запросы и целые страницы. В каждом цикле запроса входящий запрос отображается на метод в контролер объект, который затем полностью генерирует исходящий ответ, обычно путем извлечения данных из модель заселить Посмотреть написано в специализированных разметка шаблона. Это сохраняет приложение поток контроля просто и понятно, но может сделать повторное использование кода в контроллере сложно.
Напротив, Wicket очень похож на сохранный GUI фреймворки, такие как Качать. Приложения Wicket - это деревья составные части, которые используют слушателя делегаты реагировать на HTTP запросы к ссылкам и формам таким же образом, как компоненты Swing реагируют на события мыши и нажатия клавиш. Wicket относится к категории компонентных фреймворков.
Дизайн
Калитка использует простой XHTML для создания шаблонов (что обеспечивает четкое разделение представления и бизнес-логика и позволяет редактировать шаблоны с помощью обычных WYSIWYG инструменты дизайна[5]). Каждый компонент привязан к именованному элементу в XHTML и становится ответственным за рендеринг этого элемента в окончательном выводе. В страница является просто содержащим компонент верхнего уровня и связан ровно с одним шаблоном XHTML. Используя специальный тег, группа отдельных компонентов может быть выделена в один компонент, называемый панель, который затем может быть повторно использован на этой странице, других страницах или даже других панелях.
Каждый компонент поддерживается своей собственной моделью, которая представляет состояние компонента. Фреймворк не знает, как компоненты взаимодействуют со своими моделями, которые рассматриваются как непрозрачный объекты автоматически сериализованный и настойчивый между запросами. Однако могут быть созданы более сложные модели. съемный и предоставить крючки организовать собственное хранение и восстановление в начале и в конце каждого цикла запроса. Wicket не требует какого-либо особого постоянства объекта или ORM слой, поэтому приложения часто используют комбинацию Спящий режим объекты[нужна цитата ], EJB или же POJO как модели.
В Wicket все состояние на стороне сервера управляется автоматически. Никогда не следует напрямую использовать объект HttpSession или подобную оболочку для хранения состояния. Вместо этого состояние связано с компонентами. Каждый компонент страницы на стороне сервера содержит вложенную иерархию компонентов с отслеживанием состояния, где модель каждого компонента в конечном итоге является POJO (простой старый объект Java)
Wicket стремится к простоте. В Wicket нет файлов конфигурации для изучения. Wicket - это простая библиотека классов с последовательным подходом к структуре компонентов.
Пример
А Привет, мир Приложение Wicket с четырьмя файлами:
- HelloWorld.html
- Шаблон XHTML.
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> xmlns ="http://www.w3.org/1999/xhtml" xmlns: калитка ="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" xml: lang ="en" lang ="en"><body> <диапазон калитка: id ="сообщение" id ="сообщение">Сообщение идет сюда</span></body></html>
- HelloWorld.java
- Компонент страницы, который будет привязан к шаблону. Он, в свою очередь, связывает дочерний компонент (компонент Label с именем «message»).
упаковка org.wikipedia.wicket;импорт org.apache.wicket.markup.html.WebPage;импорт org.apache.wicket.markup.html.basic.Label;общественный учебный класс Привет, мир расширяет Страница в Интернете { /** * Конструктор */ общественный Привет, мир() { Добавить(новый Этикетка("сообщение", "Привет, мир!")); }}
- HelloWorldApplication.java
- Основной класс приложения, который направляет запросы домашней страницы компоненту страницы HelloWorld.
упаковка org.wikipedia.wicket;импорт org.apache.wicket.protocol.http.WebApplication;общественный учебный класс HelloWorldApplication расширяет Веб приложение { /** * Конструктор. */ общественный HelloWorldApplication() { } /** * @see org.apache.wicket.Application # getHomePage () */ общественный Учебный класс getHomePage() { возвращаться Привет, мир.учебный класс; }}
- web.xml
- В сервлет заявление Дескриптор развертывания, который устанавливает Wicket в качестве обработчика по умолчанию для сервлета и организует создание экземпляра HelloWorldApplication при запуске.
<?xml version="1.0" encoding="UTF-8"?><веб-приложение 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" версия ="2.5"> <display-name>Пример калитки</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>
Составные части
Встроены базовые компоненты, такие как форма, ссылки, повторители и т. Д.
Релизы
Серии | Описание | Последний релиз | Дата последнего выпуска |
---|---|---|---|
9.x | Переход на Java 11 в качестве необходимой минимальной платформы, переход с JUnit 4 на 5, поддержка Java 12 и 13, переработка страницы и хранилища данных и другие улучшения.[6] | 9.0.0 | 2020-07-08 |
8.x | Переход на Java 8 как на необходимую минимальную платформу. Поддержка Lambdas, требуется переход версии Servlet API на 3.1, поддержка новых типов для обработки дат и другие улучшения.[7] Рекомендуется обновить до версии 9.x. | 8.9.0 | 2020-07-11 |
7.x | Переход на Java 7 в качестве необходимой минимальной платформы, предотвращение подделки межсайтовых запросов, поддержка встроенных образов. Релиз включает почти 300 функций, улучшений и исправлений.[8] Только исправления безопасности, рекомендуется обновить до версии 9.x. | 7.17.0 | 2020-07-16 |
6.x | Переход на Java 6 как на необходимую минимальную платформу. Готовая интеграция с jQuery, полный контроль над запросами AJAX, улучшенная регистрация событий в браузерах, поддержка больших наборов данных, управление зависимостями для клиентских библиотек JavaScript, экспериментальная поддержка веб-сокетов.[9] | 6.30.0 | 2018-12-05 |
1.5.x | Улучшения функций Wicket.[10] | 1.5.16 | 2016-08-05 |
1.4.x | Переход на Java 5 как на необходимую минимальную платформу.[11] | 1.4.23 | 2014-02-06 |
1.3.x | 1.3.7 | 2009-07-30 | |
1.2.x | 1.2.7 | 2008-03-23 | |
1.1.x | 1.1.1 | TBD | |
1.0.x | 1.0.3 | TBD | |
Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия |
Смотрите также
Рекомендации
- Серегатти Лонго, Жоао Савиу (26 августа 2013 г.). Мгновенный Apache Wicket 6 (1-е изд.). Packt Publishing. п. 54. ISBN 978-1783280018.
- Мадер, Йохен (28 марта 2012 г.). Калитка: Komponentenbasiert und objektorientiert (1-е изд.). Entwickler. п. 220. ISBN 978-3868020816. Архивировано из оригинал на 2010-12-23. Получено 2009-01-23.
- Вайнберг, Игорь (15 мая 2011 г.). Поваренная книга Apache Wicket (1-е изд.). Packt Publishing. п. 312. ISBN 978-1-84951-160-5.
- Дашорст, Мартейн; Хиллениус, Элко (15 сентября 2008 г.). Калитка в действии (1-е изд.). Публикации Мэннинга. п. 392. ISBN 978-1-932394-98-6.
- Гурумурти, Картик (7 сентября 2006 г.). Pro Wicket (1-е изд.). Apress. п. 328. ISBN 1-59059-722-2. Архивировано из оригинал на 2010-12-23. Получено 2009-01-23.
Примечания
- ^ «Выпуск Apache Wicket 7.17.0». Получено 5 октября 2020.
- ^ «Выпуск Apache Wicket 8.9.0». Получено 5 октября 2020.
- ^ «Выпуск Apache Wicket 9.0.0». Получено 5 октября 2020.
- ^ Дашорст, Мартейн (20 июля 2007 г.). «Выпускники Wicket из Apache Incubation». Получено 2008-03-07.
- ^ Карлтон, Дэниел (2007-10-12). "Веб-разработка на Java по методу Wicket". DevX. В архиве из оригинала 10 марта 2008 г.. Получено 2008-03-07.
- ^ Представляем Apache Wicket 9: окунитесь в современный мир Java!. wicket.apache.org. Проверено 5 октября 2020.
- ^ Представляем Apache Wicket 8: меньше пишите, добивайтесь большего. wicket.apache.org. Проверено 22 мая 2018.
- ^ Выпущен Apache Wicket v7.0. wicket.apache.org. Проверено 16 апреля 2018.
- ^ Выпущен Apache Wicket v6.0.0. wicket.apache.org. Проверено 5 октября 2020.
- ^ Apache Wicket - Apache Wicket выпускает Wicket 1.5. Wicket.apache.org. Проверено 13 августа 2013. В архиве 6 октября 2014 г. Wayback Machine
- ^ Apache Wicket - Apache Wicket 1.4 выводит безопасность типов на новый уровень В архиве 25 апреля 2012 г. Wayback Machine. Wicket.apache.org. Проверено 13 августа 2013.