Apache Wicket

редактировать
Apache Wicket
Apache Wicket logo.png
Разработчик (и) Apache Software Foundation
Стабильный выпуск
7.x7.17.0 / 16 июля 2020; 3 месяца назад (2020-07-16)
8.x8.9.0 / 11 июля 2020 г.; 3 месяца назад (2020-07-11)
9.x9.0.0 / 8 июля 2020 г.; 3 месяца назад (2020-07-08)
Репозиторий Репозиторий Wicket (зеркало)
Написано наJava
Тип Фреймворк веб-приложений
Лицензия Лицензия Apache 2.0
Веб-сайтwicket.apache.org

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

Содержание
  • 1 Обоснование
  • 2 Дизайн
  • 3 Пример
  • 4 Компоненты
  • 5 Версии
  • 6 См. Также
  • 7 Ссылки
    • 7.1 Примечания
  • 8 Внешние ссылки
Обоснование

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

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

Дизайн

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

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

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

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

Пример

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

HelloWorld.html
Шаблон XHTML.
Здесь идет сообщение
HelloWorld.java
Компонент страницы, который будет привязан к шаблону. Он, в свою очередь, связывает дочерний компонент (компонент Label с именем "message").
package org.wikipedia.wicket; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; публичный класс HelloWorld extends WebPage {/ ** * Конструктор * / public HelloWorld () {add (new Label ("message", "Hello World!")); }}
HelloWorldApplication.java
Основной класс приложения, который направляет запросы для домашней страницы в компонент страницы HelloWorld.
package org.wikipedia.wicket; import org.apache.wicket.protocol.http.WebApplication; открытый класс HelloWorldApplication расширяет WebApplication {/ ** * Constructor. * / public HelloWorldApplication () {} / ** * @see org.apache.wicket.Application # getHomePage () * / public Class getHomePage () {return HelloWorld.class; }}
web.xml
сервлет приложение Дескриптор развертывания, который устанавливает Wicket в качестве обработчика по умолчанию для сервлета и организует создание экземпляра HelloWorldApplication в запуск.
Пример WicketHelloWorldApplicationorg.apache.wicket.protocol.http.WicketFilterapplicationClassNameorg.wikipedia.wicket.HelloWorldApplicationHelloWorldApplication/*
Компоненты

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

Выпуски
Версии Apache Wicket
СерияОписаниеПоследний выпускДата последнего выпуска
Текущая стабильная версия: 9.xПереход на Java 11 в качестве необходимой минимальной платформы, миграция с JUnit 4 на 5, поддержка Java 12 и 13, переработка страницы и хранилища данных и другие улучшения.9.0.02020-07-08
Старая версия, но все еще поддерживается: 8.xПереход на Java 8 в качестве минимальной необходимой платформы. Поддержка Lambdas, требуется переход версии Servlet API на 3.1, поддержка новых типов для обработки дат и другие улучшения. Рекомендуется обновить до версии 9.x.8.9.02020-07-11
Старая версия, но все еще поддерживается: 7.xПереход на Java 7 в качестве требуемой минимальной платформы, кросс предотвращение подделки запросов сайта, поддержка встроенных образов. Релиз состоит из почти 300 функций, улучшений и исправлений. Только исправления безопасности, рекомендуется обновить до версии 9.x.7.17.02020-07-16
Старая версия, больше не поддерживается: 6.xПереход на Java 6 в качестве требуемой минимальной платформы. Готовая интеграция с jQuery, полный контроль над запросами AJAX, улучшенная регистрация событий в браузерах, поддержка больших наборов данных, управление зависимостями для клиентских библиотек JavaScript, экспериментальная поддержка веб-сокетов.6.30.005.12.2018
Старая версия, больше не поддерживается: 1.5.xУлучшения функций Wicket.1.5.162016 -08-05
Старая версия, больше не поддерживается: 1.4.xПереход на Java 5 в качестве требуемой минимальной платформы.1.4.232014- 02-06
Старая версия, больше не поддерживается: 1.3.x1.3.72009-07-30
Старая версия, больше не поддерживается: 1.2.x1.2.72008-03-23 ​​
Старая версия, больше не поддерживается: 1.1.x1.1.1TBD
Старая версия, больше не поддерживается: 1.0.x1.0.3TBD
Условные обозначения: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущая версия
См. Также
  • Бесплатная версия с открытым исходным кодом программный портал
Ссылки

Notes

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

Официальный сайт Измените это на Викиданные

.

Последняя правка сделана 2021-06-11 20:11:17
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте