Лица сервера Джакарты

редактировать
Лица сервера Джакарты
20110510-jsf-logo.tiff
Автор (ы) Sun Microsystems
Разработчик (и) Eclipse Foundation
Стабильный выпуск 2.3.2 / 20 августа 2019 г.; 14 месяцев назад (20.08.2019)
Предварительный выпуск 3.0.0 RC1 / 7 марта 2020 г.; 7 месяцев назад (07.03.2020)
Репозиторий Измените это на Wikidata
Написано наJava
Тип Структура веб-приложений
Веб-сайтjavadoc.io / doc / jakarta.faces / jakarta.faces-api Измените это на Wikidata

Джакарта Server Faces (JSF ; ранее JavaServer Faces) - это спецификация Java для создания компонентных -содержащих пользовательских интерфейсов для веб-приложений и был формализован как стандарт через Java Community Process, являющийся частью платформы Java, Enterprise Edition. Это также MVC веб-фреймворк, который упрощает создание пользовательских интерфейсов (UI) для серверных приложений за счет использования повторно используемых компонентов пользовательского интерфейса на странице.

JSF 2 использует Facelets в качестве системы шаблонов по умолчанию. Также могут использоваться другие технологии просмотра, такие как XUL или обычная Java. Напротив, JSF 1.x использует JavaServer Pages (JSP) в качестве системы шаблонов по умолчанию.

Содержание

  • 1 История
    • 1.1 Версии
  • 2 Как это работает
  • 3 JSF и Ajax
  • 4 Компоненты и платформы с поддержкой Ajax
  • 5 Последние разработки
  • 6 Критика
    • 6.1 Опровержение критики
  • 7 Ссылки
  • 8 Внешние ссылки

История

В 2001 году исходный запрос на спецификацию Java (JSR) для технологии, которая в конечном итоге стала JavaServer Faces, предлагала разработать пакет с именем javax.servlet.ui

К июню 2001 года JavaWorld сообщит о разработке командой Эми Фаулер «API JavaServer Faces» (также известного как «Moonwalk») - «фреймворка приложения. для создания пользовательских веб-интерфейсов ».

Версии

  • JSF 2.3 (2017-03-28) - Основные функции: выражения поиска, URL-адреса без расширений, проверка bean-компонентов для полных классов, push-коммуникация с использованием WebSocket, улучшенная интеграция с CDI.
  • JSF 2.2 (2013-05-21) - введены новые концепции, такие как представления без сохранения состояния, поток страниц и возможность создавать переносимые контракты ресурсов.
  • JSF 2.1 (22.11.2010) - Техническая поддержка 2 JSF 2.0. Изменено лишь очень небольшое количество спецификаций.
  • JSF 2.0 (2009-07-01) - основной выпуск для простоты использования, расширенной функциональности и производительности. Совпадает с Java EE 6.
  • JSF 1.2 (2006-05-11) - множество улучшений в основных системах и API. Совпадает с Java EE 5. Первоначальное внедрение в Java EE.
  • JSF 1.1 (2004-05-27) - выпуск с исправлением ошибок. Без изменений спецификации.
  • JSF 1.0 (2004-03-11) - выпущена первоначальная спецификация.

Как это работает

На основе компонентно-ориентированного дизайна UI -model, JavaServer Faces использует файлы XML, называемые шаблонами представлений или Facelets views. FacesServletобрабатывает запросы, загружает соответствующий шаблон представления, строит дерево компонентов, обрабатывает события и передает ответ (обычно на языке HTML) клиенту. Состояние компонентов пользовательского интерфейса и других объектов, представляющих интерес, сохраняется в конце каждого запроса в процессе, называемом stateSaving (примечание: transient true ), и восстанавливается при следующем создании этого Посмотреть. Либо клиентская, либо серверная сторона может сохранять объекты и состояния.

JSF и Ajax

JSF часто используется вместе с Ajax, техникой разработки многофункциональных интернет-приложений. Ajax - это комбинация методов и технологий веб-разработки, позволяющая создавать многофункциональные пользовательские интерфейсы. Компоненты пользовательского интерфейса в Mojarra (эталонная реализация JSF ) и Apache MyFaces изначально были разработаны только для HTML, и Ajax нужно было добавлять через JavaScript. Однако это изменилось:

Поскольку JSF поддерживает несколько форматов вывода, компоненты с поддержкой Ajax могут быть легко добавлены для обогащения пользовательских интерфейсов на основе JSF. Спецификация JSF 2.0 обеспечивает встроенную поддержку Ajax путем стандартизации жизненного цикла запроса Ajax и предоставления простых интерфейсов разработки для событий Ajax, позволяя любому событию, инициированному клиентом, пройти надлежащую проверку, преобразование и, наконец, вызов метода перед возвратом результата. в браузер через обновление XML DOM.

JSF 2 включает поддержку постепенной деградации, когда JavaScript отключен в браузере.

Компоненты и фреймворки с поддержкой Ajax

Следующие компании и проекты предлагают фреймворки JSF на основе Ajax или библиотеки компонентов:

  • Apache MyFaces - Apache Foundation Реализация JSF с компонентами Ajax
  • Backbase Enterprise Ajax - JSF Edition - Ajax framework
  • BootsFaces JSF Framework с открытым исходным кодом на основе Bootstrap
  • IBM Notes - XPages
  • ICEfaces - платформа расширений Java JSF с открытым исходным кодом и богатые компоненты, Ajax без JavaScript
  • JBoss RichFaces (производный от и заменяет Ajax4jsf ) - Компоненты JSF с поддержкой Ajax для макета, загрузки файлов, форм, входных данных и многих других функций. Срок его службы подошел к концу в июне 2016 года.
  • OmniFaces - служебная библиотека JSF с открытым исходным кодом
  • OpenFaces - инфраструктура Ajax с компонентами JSF
  • Oracle ADF Faces Rich Client - Oracle Application Development Framework
  • PrimeFaces - Структура Ajax с компонентами JSF
  • Sun Java BluePrints AJAX-компоненты
  • ZK - Платформа Ajax с компонентами JSF

Последние разработки

Facelets (который был разработан специально для Java Server Faces) был принят в качестве официальной технологии просмотра для JSF 2.0. Это устраняет конфликты жизненного цикла, которые существовали с JSP, заставляя разработчиков Java обходные пути. Facelets позволяет легко создавать компоненты / теги с использованием разметки XML вместо кода Java, что является главной жалобой на JSF 1.x.

Новые разработки JSF также обеспечивают широкий доступ к аннотациям Java 5, таким как @ManagedBean, @ManagedPropertyи @FacesComponent, что устраняет необходимость в faces-config.xmlво всех случаях, кроме расширения платформы. Навигация была упрощена, устранена необходимость в случаях навигации faces-config.xml. Переходы между страницами могут быть вызваны просто путем передачи имени желаемого View / Facelet.

Добавление частичного сохранения состояния и обновления DOM являются частью встроенной стандартизированной поддержки Ajax.

Последний выпуск JSF имеет встроенную поддержку для обработки ресурсов, таких как изображения, CSS и Javascript, что позволяет включать артефакты в библиотеки компонентов, разделять их в файлы JAR или просто размещать в одном месте в пределах Веб приложение. Это включает в себя логическое именование и управление версиями ресурсов.

JSF 2.0 также включает ряд других изменений, таких как добавление поддержки событий, отдельных режимов разработки, подготовки и производства, аналогично RAILS_ENVв Ruby on Rails, и значительно расширив стандартный набор компонентов.

Критика

В своей публикации «Technology Radar» в январе 2014 г. ThoughtWorks написал:

Мы продолжаем видеть, как команды сталкиваются с проблемами при использовании JSF - JavaServer Faces - - и рекомендуем вам избегать этой технологии. Команды, похоже, выбирают JSF, потому что это стандарт JEE, не оценивая, подходит ли им модель программирования. Мы думаем, что JSF ошибочен, потому что он пытается абстрагироваться от HTML, CSS и HTTP, в точности обратное тому, что делают современные веб-фреймворки.. JSF, как и веб-формы ASP.NET, пытается создать с сохранением состояния поверх протокола HTTP без сохранения состояния, что в итоге вызывает целый ряд проблем, связанных с общим состоянием на стороне сервера. Нам известно об улучшениях в JSF 2.0, но мы считаем, что эта модель в корне неверна. Мы рекомендуем командам использовать простые фреймворки, а также использовать и понимать веб-технологии, включая HTTP, HTML и CSS.

В статье «Почему следует избегать JSF», опубликованной в ноябре 2014 года на веб-сайте DZone, Йенс Шаудер написал:

Facelets, предпочтительная технология представления JSF на первый взгляд выглядит как обычная технология создания шаблонов, такая как старый добрый JSP или Thymeleaf. Но если присмотреться, ужас становится очевидным. В том же месте, где вы структурируете свой HTML, вы также размещаете логику, какие части пользовательского интерфейса должны обновляться при действии. Явное нарушение принципа разделения ответственности в моей книге. Еще лучше - немедленный атрибут, который меняет жизненный цикл на стороне сервера! А если этого недостаточно, он делает это по-разному, в зависимости от того, для какого тега вы его используете. Вы не можете придумывать такие вещи.

Опровержение критики

В феврале 2014 года Чагатай Живичи (руководитель PrimeFaces) ответил на критику ThoughtWorks в сообщении под названием: JSF - это не то, что вам сказали больше. Чивичи утверждает, что улучшения в JSF с годами предлагают множество функций, которые охватывают современную веб-разработку, предоставляя возможность писать собственные JavaScript, HTML и CSS. Также относительно состояния Чагатай писал:

JSF по своей природе является структурой с отслеживанием состояния, а состояние упрощает разработку веб-приложений. Благодаря улучшенным методам управления состоянием, представленным в JSF 2.0+ (например, режим без сохранения состояния, частичное сохранение состояния), JSF также может масштабироваться.

Ссылки

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

На Викискладе есть носители, связанные с Jakarta Server Faces.
Последняя правка сделана 2021-05-24 12:20:50
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте