Описание тега jsf
Информация, которую нужно предоставить, задавая вопросы JSF
Если вы хотите получить хорошие ответы на свои вопросы по JSF, вы получите их быстрее, если сразу включите в вопрос следующую информацию.
Какую реализацию и версию JSF вы используете?
Мохарра или MyFaces? 1.0.x, 1.1.x, 1.2.x, 2.0.x, 2.1.x, 2.2.x или 2.3.x? Обычно вы можете найти точное имя и версию реализации в журнале запуска веб-приложения или, по крайней мере, в имени файла JAR и / или
MANIFEST.MF
файл. Также укажите точную версию любого компонента / служебной библиотеки JSF, участвующего в проблеме. Если вы ничего не упомянули, мы будем считать, что на данный момент доступна последняя версия.Разница между JSF 1.x и JSF 2.x слишком велика, чтобы дать надежный ответ, охватывающий обе версии. Кроме того, каждая из реализаций / библиотек JSF может иметь свой собственный набор ошибок / причуд, зависящих от версии, чтобы отвечающий мог при необходимости учесть это. Если доступна более новая версия, попробуйте выполнить обновление, а затем повторно проверьте проблему.
Какие-либо предупреждения / ошибки / исключения в сообщениях лиц, консоли браузера или журналах сервера?
Если приложение работает незаметно, убедитесь, что вы добавили
<h:messages>
на свою страницу JSF, чтобы не пропустить какие-либо сообщения с лицами. Также убедитесь, что вы установилиjavax.faces.PROJECT_STAGE
кDevelopment
вweb.xml
чтобы не пропустить какие-либо предупреждения / подсказки разработчиков. Также убедитесь, что вы прочитали консоль браузера (нажмите F12 в Chrome/Firefox23+/IE9+) и журналы сервера сверху вниз. Изучите любую строку, которая представляет собой предупреждение или ошибку или выглядит иначе.Когда вы получаете исключение, всегда включайте самую нижнюю основную причину трассировки стека вместе со всеми строками "at" (все остальные причины, указанные выше, являются просто последствиями). Исключения - как правило, отличные ключевые слова для поиска. Вы можете просто выполнить поиск по типу исключения + сообщение и, необязательно, по первой строке трассировки "в" без скобок + номер строки, чтобы увидеть, не было ли это еще запрошено и отвечено ранее. Пример 1, пример 2, пример 3.
Приведите минимальный воспроизводимый пример!
Постарайтесь максимально изолировать проблему в минимально возможном, но полном примере copy'n'paste'n'runnable. Что касается кода Java (вспомогательный компонент), вам не нужно включать импорт и геттеры / сеттеры. Вам также не нужно включать какие-либо поля и методы, которые не влияют на реальную проблему. Что касается кода XHTML (просмотра), вам не нужно включать какие-либо теги и атрибуты, которые не способствуют возникновению реальной проблемы. Вам также не нужно включать весь уровень бизнес-сервисов (EJB/JPA/Spring/DAO/JDBC/ и т. Д.), Достаточно жестко запрограммированной модели ( иначе это не обязательно проблема, связанная с JSF).
Вы должны предположить, что потенциальный ответчик скопирует предоставленный код Java в пустой тестовый класс и автоматически организует импорт и автоматически сгенерирует геттеры / сеттеры, а также скопирует предоставленный код XHTML в
<h:body>
тестового файла без шаблона (!) в пустом проекте со всеми настройками по умолчанию (т.е. без файлов конфигурации XML или пустыми!) и с использованием последних версий библиотек / сервера, если иное явно не указано в самом вопросе (и вам также следует заранее проверьте это сами!).
Без вышеупомянутой информации и / или надлежащего MCVE получение ответов будет больше зависеть от удачи (в вопросе нет двусмысленности и шума относительно возможных причин) и обоснованных предположений потенциальных ответчиков (зная наиболее распространенные ошибки начинающих). В противном случае вы можете рискнуть закрыть вопрос как "Не по теме, потому что нет MCVE или есть только полный дамп кода", или "Слишком широко, потому что он в основном просит нас написать код, а не объяснять и решать проблему".
Минимальные требования
- JSF 2.4 на самом деле не существует, хотя он случайно присутствует в Maven! Смотрите также Обновление до JSF 2.4 и Не используйте org.glassfish Mojarra 2.4.0! Вам нужно выбрать последнюю версию 2.3.x или будущую JSF 3.x (еще не доступную на момент написания).
- JSF 2.3 требует как минимум Java 1.8, Servlet 3.0, EL 3.0 и CDI 1.2. Сервлет 4.0 является необязательным и позволяет JSF 2.3 обслуживать ресурсы через HTTP/2 push. когда
<f:websocket>
используется также JSONP 1.1. CDI 1.2 явно требуется из-за@ManagedBean
устарело. - JSF 2.2 требует как минимум Java 1.6, Servlet 3.0 и EL 2.2. Servlet 3.0 явно требуется из-за нового компонента загрузки файлов, который внутренне использует стандартный API Servlet 3.0 без необходимости в сторонних библиотеках.
- JSF 2.1 требует как минимум Java 1.5, Servlet 2.5 и EL 2.1. Сервлет 3.0 является необязательным и позволяет JSF 2.1 автоматически запускаться на
*.jsf
без всякой необходимостиweb.xml
конфигурация, пока естьfaces-config.xml
. - JSF 2.0 требует как минимум Java 1.5, Servlet 2.5 и EL 2.1. Вы можете использовать Servlet 2.4, если предоставите свой собственный EL 2.1 API / impl.
- JSF 1.2 требует как минимум Java 1.5, Servlet 2.5, JSP 2.1 и EL 2.1. Если вы замените JSP 2.1 на Facelets 1.x в качестве технологии просмотра по умолчанию, вы можете использовать JSF 1.2 на сервлете 2.4.
- JSF 1.0 и 1.1 требует как минимум Java 1.4, Servlet 2.4 и JSP 2.0.
Примеры контейнеров Java EE и сервлетов
- Сервлет 4.0: Tomcat 9.x, GlassFish / Payara 5.x
- Сервлет 3.1: Tomcat 8.x, WildFly 8/9/10 / 11.x, GlassFish / Payara 4.x, TomEE 7.x, WebSphere 9.x
- Сервлет 3.0: Tomcat 7.x, JBoss AS 6 / 7.x, GlassFish 3.x, TomEE 1.x, WebSphere 8.x
- Сервлет 2.5: Tomcat 6.x, JBoss AS 5.x, GlassFish 2.x, WebSphere 7.x
- Сервлет 2.4: Tomcat 5.5.x, JBoss AS 4.x, Sun Java Application Server, WebSphere 5 / 6.x
Установка JSF
В зависимости от используемого сервера JSF может быть уже встроенным (полнофункциональные контейнеры Java EE, такие как WildFly, JBoss EAP, TomEE, Payara, GlassFish, WebSphere и т. Д.) Или нет (простые контейнеры JSP/ сервлетов, такие как Tomcat, Причал и т. Д.). Если сервер не поставляется со встроенным JSF, вам необходимо вручную установить реализацию JSF по вашему выбору ( Mojarra или MyFaces). Не забывайте JSTL, эти простые контейнеры JSP/Servlet обычно даже не поставляются с JSTL.
- Инструкции по установке Mojarra
- Инструкции по установке MyFaces (ВНИМАНИЕ: устаревшее содержимое)
Ресурсы
Онлайн-уроки
- Руководства по Oracle Java EE
- Учебник по Java EE 8 - Технология JavaServer Faces (JSF 2.3) - Учебные примеры
- Руководство по Java EE 7 - технология JavaServer Faces (JSF 2.2)
- Учебник по Java EE 6 - Технология JavaServer Faces (JSF 2.0) - Учебные примеры
- Учебник по Java EE 5 - Технология JavaServer Faces (JSF 1.2) - Учебные примеры
- Mkyong.com
- Coreservlets.com
- Код BalusC
- Видео обучение
Офлайн-руководства ("книги")
- Полное руководство по JSF в Java EE 8
- Освоение JSF 2.2
- Pro JSF 2.2 с HTML5
- Начало Java EE 7 с GlassFish
Реализации JSF
- Mojarra - эталонная реализация Oracle (RI), стандартная часть, например, WildFly
- MyFaces - альтернатива Apache, стандартная часть, например, TomEE
Библиотеки компонентов / служебных программ JSF
- PrimeFaces ( витрина) - библиотека компонентов, основанная на jQuery + jQuery UI
- OmniFaces ( витрина) - служебная библиотека, совместимая с любой библиотекой компонентов JSF
- RichFaces ( витрина) - библиотека компонентов, основанная на jQuery + custom UI. (Срок службы истек в июне 2016 г.)
- IceFaces ( витрина) - библиотека компонентов, клон PrimeFaces 2.x + некоторые улучшенные компоненты
- Tomahawk - библиотека компонентов, базовые расширения стандартного JSF, например, бесконтактные радиокнопки
- Тринидад - библиотека компонентов, расширенные расширения стандартного JSF + кастомный JS / ajax
- OpenFaces ( витрина) - библиотека компонентов, основанная на пользовательском JS/ajax + пользовательский интерфейс
- BootsFaces ( витрина) - библиотека компонентов, основанная на Bootstrap
- ButterFaces - библиотека компонентов, основанная на Bootstrap
- AngularFaces - библиотека компонентов, устраняющая разрыв между JSF и Angular
- TornadoFaces - библиотека компонентов с элегантным API виджетов с поддержкой стилей SASS
Часто задаваемые вопросы
- Проверьте вкладку "часто" тегов JSF и JSF2.
Дополнительные ссылки:
- Проверьте JSF в ZEEF
Связанные теги
- JSF general
mojarra myfaces facesservlet facescontext facelets tagfile composite-component custom-component custom-renderer el jstl backing-beans managed-bean managed-property binding actionlistener valuechangelistener phaselistener systemeventlistener prerenderview postconstruct methodexpression viewexpiredexception protected-views passthrough-attributes passthrough-elements conditional-rendering rendered-attribute immediate-attribute - JSF scopes
область видимости сеанса область видимости вспышка область видимости потока - Компоненты JSF / теги
DataTable uirepeat uiinclude graphicimage selectonemenu selectoneradio selectmanycheckbox selectmanymenu selectbooleancheckbox selectmanylistbox CommandButton commandlink viewparams viewaction /questions/tagged/setpropertyactionlistener - JSF компонент / коммунальные библиотеки
primefaces primefaces-расширений omnifaces RichFaces Ajax4jsf ICEfaces томагавк Trinidad openfaces deltaspike шов IBM-JSF Вудсток bootsfaces angularfaces butterfaces angularfaces - Целевые / совместимые платформы JSF
cdi weld codi