Гобелен Apache


Apache Tapestry - это компонентно-ориентированная среда веб-приложений Java с открытым исходным кодом, концептуально похожая на JavaServer Faces и Apache Wicket . [2] Гобелен был создан Говардом Льюисом Шипом, [ когда? ] и был принят Apache Software Foundation как проект верхнего уровня в 2006 году [3].

Гобелен подчеркивает простоту, удобство использования и продуктивность разработчика. Он придерживается парадигмы « Конвенция над конфигурацией» , устраняя почти все конфигурации XML. [4] Tapestry использует модульный подход к веб-разработке, имея сильную привязку между каждым компонентом (объектом) пользовательского интерфейса на веб-странице и соответствующим ему классом Java . Эта компонентная архитектура заимствует многие идеи из WebObjects . [5]

Перезагрузка живого класса
Tapestry контролирует файловую систему на предмет изменений в классах страниц Java, классах компонентов, классах реализации служб, HTML-шаблонах и файлах свойств компонентов и выполняет горячую замену изменений в работающем приложении без перезапуска. Это обеспечивает очень короткий цикл обратной связи «код-сохранение-просмотр», который, как утверждается, значительно повышает продуктивность разработчика. [6]
На основе компонентов
Страницы могут быть построены с небольшими вложенными компонентами, каждый из которых имеет шаблон и класс компонента. Пользовательские компоненты якобы тривиальны для создания. [7]
Соглашение важнее конфигурации
Для настройки приложения Tapestry использует соглашения об именах и аннотации, а не XML. [8]
Резервное использование HTTPSession
Благодаря минимальному использованию HTTPSession, Tapestry обеспечивает высокую эффективность в кластерной среде с репликацией сеанса. [9]
Опубликовать / Перенаправить / Получить
Большинство отправок форм следуют шаблону « Отправить / Перенаправить / Получить» (PRG), который сокращает количество случайных отправок форм и делает URL-адреса более удобными и удобными для закладок, а также позволяет нормально работать кнопкам «Назад» и «Обновить» в браузере. [10]
Инверсия управления (IoC)
Tapestry построен на облегченном слое Inversion of Control, похожем на Google Guice , но спроектирован так, чтобы сделать почти все аспекты поведения Tapestry настраиваемыми и заменяемыми. [11]

Минимальному шаблонному приложению Tapestry требуется всего три файла:

HelloWorld.tml
(X) HTML-шаблон для страницы / helloworld. Шаблоны гобеленов могут содержать любую правильно сформированную (X) разметку HTML.
  xmlns = "http://www.w3.org/1999/xhtml"  xmlns: t = "http://tapestry.apache.org/schema/tapestry_5_3.xsd" >   < p> Здравствуйте, $ {username}