Джакарта Лица
Тон или стиль этой статьи могут не отражать энциклопедический тон , используемый в Википедии . ( Ноябрь 2012 г. ) |
Оригинальный автор(ы) | Сан Микросистемс |
---|---|
Разработчик(и) | Фонд Затмения |
Стабильная версия | 4.1.0 [1] / 05.06.2024; 2 месяца назад |
Репозиторий | |
Написано в | Ява |
Тип | Фреймворк веб-приложений |
Веб-сайт | Джакарта |
Jakarta Faces , ранее Jakarta Server Faces и JavaServer Faces ( JSF ) — это спецификация Java для создания компонентных пользовательских интерфейсов для веб-приложений . [2] Он был официально оформлен в качестве стандарта в рамках процесса сообщества Java как часть платформы Java Enterprise Edition . Это MVC веб-инфраструктура , которая упрощает создание пользовательских интерфейсов (UI) для серверных приложений за счет использования повторно используемых компонентов пользовательского интерфейса на странице. [3]
JSF 2.x использует Facelets в качестве системы шаблонов по умолчанию. Пользователи программного обеспечения также могут использовать XUL или Java . [4] JSF 1.x использует страницы JavaServer (JSP) в качестве системы шаблонов по умолчанию.
История
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( август 2013 г. ) |
В 2001 году в первоначальном запросе спецификации Java (JSR) для технологии, которая в конечном итоге стала JavaServer Faces, предлагалось разработать пакет под названием javax.servlet.ui
[5]
В июне 2001 года JavaWorld сообщил о разработке командой Эми Фаулер «JavaServer Faces API» (также известного как «Moonwalk») как «платформы приложений для создания пользовательских веб-интерфейсов». [6]
События
[ редактировать ]Facelets (разработанный специально для Java Server Faces) был принят в качестве официальной технологии просмотра для JSF 2.0. Это устраняет конфликты жизненного цикла, существовавшие в JSP, и заставляет разработчиков Java искать обходные пути. [7]
Новые разработки JSF также обеспечивают широкий доступ к аннотациям Java, таким как @ManagedBean
, @ManagedProperty
и @FacesComponent
что устраняет необходимость faces-config.xml,
во всех случаях, кроме расширения фреймворка. Навигация также упрощается, устраняя необходимость faces-config.xml
навигационные кейсы. Переходы страниц можно вызвать, просто передав имя нужного представления или грани.
Добавление обновлений частичного сохранения состояния и объектной модели документа (DOM) является частью встроенной стандартизированной поддержки AJAX .
Последняя версия JSF имеет встроенную поддержку обработки таких ресурсов, как изображения, CSS и Javascript, что позволяет включать артефакты в библиотеки компонентов, разделять их на файлы JAR или просто размещать в одном месте в веб-приложении. Это включает в себя логическое именование и управление версиями ресурсов.
JSF 2.0 также включает ряд других изменений, таких как добавление поддержки событий, отдельных режимов разработки, подготовки и производства, аналогично RAILS_ENV
в Ruby on Rails , и значительно расширив стандартный набор компонентов.
История обновлений
[ редактировать ]- JSF 4.0 (15 мая 2022 г.) — основные функции: удалены некоторые устаревшие элементы (собственные управляемые компоненты, собственные ссылки EL), расширенное представление по умолчанию отсутствует, добавлен ClientWindowScoped.
- JSF 3.0.0 (28 октября 2020 г.) — имя пакета изменено с Javax на Jakarta.
- JSF 2.3 (10 сентября 2019 г.) — первый выпуск API Jakarta Server Pages для Jakarta EE. Ни API, ни поведение не изменились.
- JSF 2.3 (28 марта 2017 г.) — основные функции: выражения поиска, URL-адреса без расширений, проверка компонентов для полных классов, push-коммуникация с использованием WebSocket , расширенная интеграция с CDI. [8]
- JSF 2.2 (21 мая 2013 г.) — представлены новые концепции, такие как представления без сохранения состояния, поток страниц и возможность создавать контракты переносимых ресурсов. [9]
- JSF 2.1 (22 ноября 2010 г.) — Техническая версия 2 JSF 2.0. Лишь очень незначительное количество изменений в спецификации. [10] [11]
- JSF 2.0 (01.07.2009) — основной выпуск, обеспечивающий простоту использования, расширенную функциональность и производительность. Совпадает с Java EE 6.
- JSF 1.2 (11 мая 2006 г.) – множество улучшений в основных системах и API. Совпадает с Java EE 5. Первоначальное внедрение в Java EE.
- JSF 1.1 (27 мая 2004 г.) – выпуск с исправлением ошибок. Никаких изменений в спецификации.
- JSF 1.0 (11 марта 2004 г.) – выпущена первоначальная спецификация.
Как это работает
[ редактировать ] , управляемой компонентами пользовательского интерфейса Основываясь на модели проектирования , JavaServer Faces использует XML-файлы, называемые шаблонами представлений или Facelets представлениями . FacesServlet
обрабатывает запросы, загружает соответствующий шаблон представления, строит дерево компонентов, обрабатывает события и отображает ответ (обычно на языке HTML) клиенту. Состояние компонентов пользовательского интерфейса и других объектов, представляющих интерес, сохраняется в конце каждого запроса в процессе, называемом stateSaving (примечание: transient true ), и восстанавливается при следующем создании этого представления. Как клиент, так и серверная сторона могут сохранять объекты и состояния.
JSF и AJAX
[ редактировать ]Другие имена | JSF РИ |
---|---|
Оригинальный автор(ы) | Сан Микросистемс |
Разработчик(и) | Фонд Затмения |
Первоначальный выпуск | 3 марта 2004 г |
Стабильная версия | 3.0.2 / 29 ноября 2021 г |
Репозиторий | github |
Написано в | Ява |
Платформа | Джакарта, EE |
Тип | веб-фреймворк |
Лицензия | ЭПЛ-2.0 |
Веб-сайт | затмение-ee4j |
JSF часто используется вместе с AJAX , технологией разработки насыщенных интернет-приложений . AJAX — это сочетание методов и технологий веб-разработки, позволяющее создавать многофункциональные пользовательские интерфейсы. Компоненты пользовательского интерфейса в Mojarra JSF) . ( эталовая реализация [12] ) и Apache MyFaces изначально разрабатывались только для HTML, а AJAX нужно было добавлять через JavaScript. Однако ситуация изменилась:
Поскольку JSF поддерживает несколько форматов вывода, AJAX можно легко добавлять компоненты с поддержкой для улучшения пользовательских интерфейсов, созданных с помощью JSF. Спецификация JSF 2.0 обеспечивает встроенную поддержку AJAX путем стандартизации жизненного цикла запросов AJAX и предоставления простых интерфейсов разработки для событий AJAX. Спецификация позволяет событию, инициированному клиентом, пройти проверку, преобразование и вызов метода, прежде чем вернуть результат в браузер через обновление XML DOM.
JSF 2 включает поддержку постепенного снижения производительности при отключении JavaScript в браузере.
Компоненты и платформы с поддержкой AJAX
[ редактировать ]Следующие компании и проекты предлагают платформы JSF или библиотеки компонентов на основе AJAX:
- Apache MyFaces — реализация JSF Apache Foundation с компонентами AJAX.
- Backbase Enterprise AJAX – JSF Edition – платформа AJAX
- 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 сталкивается с богатым клиентом — платформа разработки приложений Oracle
- PrimeFaces — платформа AJAX с компонентами JSF.
- Sun Java BluePrints Компоненты AJAX
- ZK — фреймворк AJAX с компонентами JSF.
Критика
[ редактировать ]МысльВоркс, 2014 г.
[ редактировать ]В своей Technology Radar публикации за январь 2014 года компания ThoughtWorks написала: [13]
Мы по-прежнему видим, что команды сталкиваются с проблемами при использовании JSF – JavaServer Faces – и рекомендуем вам избегать этой технологии. Команды, похоже, выбирают JSF, потому что это стандарт JEE, даже не оценивая, подходит ли им модель программирования. Мы считаем, что JSF несовершенен, поскольку он пытается абстрагировать HTML , CSS и HTTP , что прямо противоположно тому, что делают современные веб-фреймворки . JSF, как и веб-формы ASP.NET, пытается создать сохранение состояния поверх протокола без сохранения состояния HTTP и в конечном итоге вызывает целый ряд проблем, связанных с общим состоянием на стороне сервера. Мы знаем об улучшениях в JSF 2.0, но считаем, что модель в корне неверна. Мы рекомендуем командам использовать простые платформы, а также использовать и понимать веб-технологии, включая HTTP, HTML и CSS.
Опровержение
[ редактировать ]В феврале 2014 года Чагатай Чивичи (руководитель PrimeFaces) ответил на критику ThoughtWorks в посте под названием « JSF — это не то, что вам больше говорили» . Чивичи утверждает, что улучшения в JSF, произошедшие за последние годы, предлагают множество функций, охватывающих современную веб-разработку, предоставляя возможность писать собственные JavaScript, HTML и CSS. Также относительно государства Чивич писал: [14]
JSF по своей природе является структурой с сохранением состояния, а состояние упрощает разработку веб-приложений. Благодаря улучшенным методам управления состоянием, представленным в JSF 2.0+ (например, режим без сохранения состояния, частичное сохранение состояния), JSF также может масштабироваться.
ДЗона, 2014
[ редактировать ]В статье, опубликованной в ноябре 2014 года на веб-сайте DZone под названием «Почему вам следует избегать JSF», Йенс Шаудер написал: [15]
Facelets, предпочтительная технология представления JSF, на первый взгляд выглядит как обычная технология шаблонов, такая как старый добрый JSP или Thymeleaf. Но если присмотреться, ужас становится очевидным. Там же, где вы структурируете свой HTML, вы также размещаете логику того, какие части пользовательского интерфейса должны обновляться при действии. Явное нарушение принципа разделения интересов в моей книге. Еще лучше — непосредственный атрибут, который меняет жизненный цикл на стороне сервера! И если этого недостаточно, он делает это по-разному в зависимости от того, на каком теге вы его используете. Такие вещи выдумывать нельзя.
Серверная сторона, 2016 г.
[ редактировать ]В феврале 2016 года веб-сайт корпоративного сообщества Java TheServerSide опубликовал статью, в которой рекомендовалось не использовать JSF, использование которого может поставить под угрозу качество конечного продукта. В статье подробно описаны пять причин: [16]
- Простые задачи становятся трудными;
- JSF не хватает гибкости;
- Кривая обучения крутая;
- Несовместимость со стандартными технологиями Java; и
- Примитивная поддержка AJAX.
Ссылки
[ редактировать ]- ^ «Выпуск 4.1.0» . 5 июня 2024 г. Проверено 5 июня 2024 г.
- ^ Джакарта Лица 4.0
- ^ «Учебное пособие по JSF 2.0» . мкёнг. 12 декабря 2010 г. Проверено 28 апреля 2017 г.
JavaServer Faces (JSF) 2.0 — это веб-фреймворк MVC, который упрощает создание пользовательских интерфейсов (поставляется с более чем 100 готовыми тегами пользовательского интерфейса) для веб-приложений Java и упрощает реализацию многократно используемого компонента пользовательского интерфейса.
- ^ NoVDL: напишите свои представления JSF на чистой Java.
- ^ «JSR 127: Лица JavaServer» . Процесс сообщества Java . Корпорация Оракл. 2014 . Проверено 5 августа 2014 г.
2.6 Есть ли предлагаемое название пакета для спецификации API? (т. е. javapi.something, org.something и т. д.) [:] javax.servlet.ui
- ^ Армстронг, Эрик (6 июня 2001 г.). «Веб-сервисы Java: что не нравится?» . JavaWorld . Проверено 27 июля 2020 г.
API JavaServer Faces (он же Moonwalk) обещает предоставить элегантное решение для реализации интерактивных функций в несовместимых браузерах. [...] Разработанный командой под руководством Эми Фаулер, архитектора Sun AWT и Swing, JavaServer Faces API предоставит набор инструментов с графическим интерфейсом, которые будут работать в обычных браузерах с использованием стандартного HTML.
- ^ Бергстен, Ганс. «Улучшение JSF путем сброса JSP» . О'Рейли . Проверено 18 августа 2011 г.
- ^ Таймс, Арьян. «Что нового в JSF 2.3?» . Размышления Java EE-разработчика . Проверено 27 июля 2020 г.
- ^ JSF 2.2 (JSR-344) является окончательной | техническая разведка через новости Java . Архивировано 27 июля 2020 г. на Wayback Machine . Блог.oio.de. Проверено 27 июля 2020 г.
- ^ JSR 314 JavaServer Faces 2.1 JSF 2.1 | технический поиск через новости Java. Архивировано 27 июля 2020 г. на Wayback Machine . Блог.oio.de. Проверено 27 июля 2020 г.
- ^ Бош, Энди (29 ноября 2010 г.). «Was ist neu in JSF 2.1» (на немецком языке). it-republik.de . Проверено 19 февраля 2013 г.
- ^ Любке, Райан (5 декабря 2007 г.). «Проект Мохарра — JSF RI получает кодовое имя» . Блог Райана Любке . Сан Микросистемс . Корпорация Оракл . Архивировано из оригинала 7 апреля 2017 г.
- ^ «Технологический радар» (PDF) . МысльВоркс. Январь 2014. с. 12. Архивировано из оригинала (PDF) 7 апреля 2016 г. Проверено 30 января 2014 г.
- ^ «JSF — это больше не то, что вам говорили» . Праймфейс . 12 февраля 2014 г. Проверено 24 ноября 2020 г.
- ^ Йенс Шаудер (ноябрь 2014 г.). «Почему вам следует избегать JSF» . ДЗона.
- ^ Маккензи, Кэмерон (16 февраля 2016 г.). «Пять недостатков выбора JSF в качестве платформы веб-приложений» . Серверная сторона . Проверено 22 декабря 2020 г.