JavaServer Faces

JavaServer Faces
Логотип программы JavaServer Faces
Тип Веб-фреймворк
Автор
Разработчик Sun Microsystems
Написана на Java
Операционная система Кроссплатформенное ПО
Аппаратная платформа Java Platform, Enterprise Edition
Последняя версия
Репозиторий github.com/jakartaee/fac…
Лицензия EPL-2.0[вд] и GPL linking exception[вд]
Сайт javaserverfaces.java.net
Логотип Викисклада Медиафайлы на Викискладе

JavaServer Faces (JSF) — это Java спецификация для построения компонентно-ориентированных пользовательских интерфейсов для веб-приложений, написанный на Java. Он служит для того, чтобы облегчать разработку пользовательских интерфейсов для Java EE-приложений. В отличие от прочих MVC-фреймворков, которые управляются запросами, подход JSF основывается на использовании компонентов. Состояние компонентов пользовательского интерфейса сохраняется, когда пользователь запрашивает новую страницу и затем восстанавливается, если запрос повторяется. Для отображения данных обычно используется JSP, Facelets, но JSF можно приспособить и под другие технологии, например XUL.

Технология JavaServer Faces включает:

  • Набор API для представления компонентов пользовательского интерфейса (UI) и управления их состоянием, обработкой событий и валидацией вводимой информации, определения навигации, а также поддержку интернационализации (i18n) и доступности (accessibility).
  • Специальная библиотека JSP тегов для выражения интерфейса JSF на JSP странице. В JSF 2.0 в качестве обработчика представления используется технология Facelets которая пришла на замену JSP.

Созданная быть гибкой, технология JavaServer Faces усиливает существующие стандартные концепции пользовательского интерфейса (UI) и концепции Web-уровня без привязки разработчика к конкретному языку разметки, протоколу или клиентскому устройству. Классы компонентов пользовательского интерфейса, поставляемые вместе с технологией JavaServer Faces, содержат функциональность компонент, а не специфичное для клиента отображение, открывая тем самым возможность рендеринга JSF-компонент на различных клиентских устройствах. Совмещая функциональность компонент интерфейса пользователя со специальными рендерерами, разработчики могут конструировать специальные теги для заданного клиентского устройства. В качестве удобства технология JSF предоставляет специфичный рендерер и специальную библиотеку JSP-тегов для рендеринга на HTML-клиенте, позволяя разработчикам приложений на J2EE платформе использовать технологию JSF в своих приложениях.

Версии JSF

  • JSF 1.0 (11.03.2004) — первоначальный выпуск по спецификации JSF
  • JSF 1.1 (27.05.2004) — исправление ошибок. Существенных изменений нет.
  • JSF 1.2 (11.05.2006) — исправление ошибок. Существенных изменений нет.
    • улучшения дают временное решение для проблемы спутанного контента[2]
    • обеспечивается XML Schema для файлов конфигурации вместо использования DTD
    • улучшения позволяют приложениям работать с многофреймовым или многооконным пользовательским интерфейсом.
    • улучшения библиотеки тегов f: для улучшения покрытия TCK, события жизненного цикла f: view и другие небольшие усовершенствования.
    • улучшенная поддержка декоратора для объектов API
    • процедура сохранения состояния клиента стала лучше защищена.
    • решена проблема двойного нажатия кнопки
    • спецификация переразбита на стандартную и нестандартную части, чтобы сделать реализацию проще
    • исправлены ошибки связанные с портлетами
    • небольшие исправления спецификации
  • JSF 2.0 (19.10.2009) — Основной пересмотр спецификации с учётом опыта разработки. Объединение с Java EE 6.
  • JSF 2.1 (22.11.2010) — Технический выпуск для поддержки JSF 2.0. Очень незначительное количество изменений по спецификации.
  • JSF 2.2 (21.05.2013) — Представлены новые концепции, такие как состояние "без состояния", поток страниц и возможность создания переносимых ресурсных контрактов.
  • JSF 2.3 (28.03.2017) — Основные возможности: поиск выражений, URL без расширений, проверка bean-компонентов для полных классов, push-сообщения с использованием WebSocket, улучшенная интеграция с CDI.

Критика

JSF версий 1.* фактически не предоставлял высокоуровневой поддержки для обработки GET-запросов[3], что существенно усложняло разработку приложений, базирующихся на REST-принципах. Во второй версии спецификации этот недостаток практически полностью устранён.

Разработчик языка Java, Джеймс Гослинг, охарактеризовал технологию JSP, лежащую в основе JSF, как «проект-клон Microsoft ASP, который был создан, только чтобы продемонстрировать насколько сама подобная идея плоха; но модель почему-то отказалась умирать»[4].

Библиотеки и компоненты

Примечания

  1. Release 4.1.0 — 2024.
  2. Hans Bergsten. Improving JSF by Dumping JSP (англ.) (9 июня 2004). Дата обращения: 8 августа 2009. Архивировано из оригинала 22 февраля 2012 года.
  3. Andy Schwartz Blog: What’s new in JSF2? Дата обращения: 2 октября 2010. Архивировано 5 октября 2010 года.
  4. James Gosling on Apple, Apache, Google, Oracle and the Future of Java. 0:48:22. Дата обращения: 28 сентября 2017. Архивировано 22 апреля 2017 года.
  5. Домашняя страница RichFaces (англ.). Дата обращения: 1 апреля 2010. Архивировано из оригинала 22 февраля 2012 года.

Ссылки

Литература

  • Дэвид М. Гери, Кей С. Хорстманн. JavaServer Faces. Библиотека профессионала = JavaServer Faces. CORE. — 3-е изд. — М.: Издательский дом "Вильямс", 2011. — 544 с. — ISBN 978-5-8459-1706-5, 978-0-13-701289-3.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.