Apache Tapestry - это компонентно-ориентированная среда веб-приложений Java с открытым исходным кодом, концептуально похожая на JavaServer Faces и Apache Wicket . [2] Гобелен был создан Говардом Льюисом Шипом, [ когда? ] и был принят Apache Software Foundation как проект верхнего уровня в 2006 году [3].
Автор (ы) оригинала | Корабль Говарда Льюиса |
---|---|
Разработчики) | Фонд программного обеспечения Apache |
Стабильный выпуск | |
Репозиторий | Хранилище гобеленов |
Написано в | Ява |
Операционная система | Кроссплатформенность ( виртуальная машина Java ) |
Тип | Фреймворк веб-приложений |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | гобелен |
Гобелен подчеркивает простоту, удобство использования и продуктивность разработчика. Он придерживается парадигмы « Конвенция над конфигурацией» , устраняя почти все конфигурации 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}