Поверхности JavaServer (JSF) являются платформой образцового предъявителя представления, обычно раньше создавал основанные на HTML-форме веб-приложения. Используя стандартные компоненты и набор рендеринга, режимы просмотра HTML с сохранением информации могут быть определены с помощью тегов Facelets или JSP и соединены проводом к данным модели и прикладной логике через отступающие бобы.

Информация для обеспечения при задавании вопросов JSF

Если Вы захотите хорошие ответы на свои вопросы JSF, то Вы получите его более быстро при непосредственном включении следующей информации в вопрос.

  • Какая реализация JSF и версия - Вы использование?

    Mojarra или 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 может иметь свой собственный набор определенных для версии ошибок/причуд так, чтобы отвечающая сторона могла, при необходимости, принять это во внимание. В случае, если существует более новая доступная версия, необходимо попытаться обновить и затем повторно протестировать проблему.

  • Какие-либо предупреждения/ошибки/исключения в сообщениях поверхностей, или консоль браузера или журналы сервера?

    Если приложение, кажется, перестало работать тихо, удостоверьтесь, что Вы добавили a <h:messages> отметьте к своей странице JSF, чтобы избежать, чтобы Вы пропустили любые сообщения поверхностей. Также удостоверьтесь, что Вы установили javax.faces.PROJECT_STAGE кому: Development в web.xml избегать, чтобы Вы пропустили любые предупреждения/подсказки разработки. Также удостоверьтесь, что Вы читали, консоль браузера (нажмите F12 in Chrome/Firefox23 +/IE9 +), и журналы сервера сверху донизу. Исследуйте любую строку, которая представляет предупреждение или ошибку или выглядит в других отношениях аварийной.

    Когда Вы получаете исключение, затем всегда включаете самую нижнюю первопричину отслеживания стека наряду со всеми "в" строках (всеми другими причинами там выше являются просто последствия). Исключениями являются обычно превосходные поисковые ключевые слова. Можно просто искать на исключении type+message и дополнительно 1-е "в" строке трассировки без parentheses+linenumber, чтобы видеть, не спрашивают ли это уже и отвечают прежде. Пример 1, пример 2, пример 3.

  • Обеспечьте минимальный восстанавливаемый пример!

    Попытайтесь изолировать проблему как можно больше в самое маленькое, но завершить copy'n'paste'n'runnable пример. Относительно Java (поддерживающий боб) код, Вы не должны включать импорт и методы считывания/методы set. Вы также не должны включать поля и методы, которые не способствуют фактической проблеме. Относительно XHTML (представление) кодируют, Вы не должны включать теги и атрибуты, которые не способствуют фактической проблеме. Вы также не должны включать целый слой бизнес-услуги (EJB/JPA/Spring/DAO/JDBC/etc), просто hardcoded модель достаточна (иначе, это не обязательно, JSF связал проблему).

    Необходимо предположить, что потенциальная отвечающая сторона будет copypaste предоставленный код Java в пустой тестовый класс и автоорганизовывать импорт и автоматически генерировать методы считывания/методы set при необходимости и copypaste предоставленный код XHTML в a <h:body> из templateless(!) тестируют файл в пустом проекте со всем набор для установки по умолчанию (т.е. никакие или пустые конфигурационные XML-файлы!) и использующий в настоящее время последние версии библиотек/сервера, если явно иначе не упомянуто в самом вопросе (и необходимо также протестировать его сами этот путь заранее!).

Без вышеупомянутой информации и/или надлежащего MCVE, получая ответы будет зависеть больше от удачи (нет никакой неоднозначности, ни шума в вопросе относительно возможных причин), и образованные предположения потенциальных отвечающих сторон (знающий ошибки наиболее распространенного начинающего). Можно иначе рискнуть вопросом, закрываемым как "Вне темы, потому что нет никакого MCVE или существует только полный дамп кода", или "Слишком Широко, потому что он в основном просит, чтобы мы написали код вместо объяснить и решить проблему".


Минимальные требования

  • JSF 2.4 на самом деле действительно не существует даже при том, что это случайно присутствует в Знатоке! См. также не используют org.glassfish Mojarra 2.4.0! Необходимо выбрать в настоящее время последний 2.3.x, или будущий JSF 3.x (еще не доступный во время записи).
  • JSF 2.3 требует минимума Java 1.8, Сервлет 3.0, EL 3.0 и CDI 1.2. Сервлет 4.0 является дополнительным и позволит JSF 2.3 служить ресурсам через нажатие HTTP/2. Когда <f:websocket> используется, JSONP 1.1 требуется также. CDI 1.2 явно требуется из-за @ManagedBean быть удержавшим от использования.
  • JSF 2.2 требует минимума Java 1.6, Сервлет 3.0 и EL 2.2. Сервлет 3.0 явно требуется из-за нового компонента загрузки файла, который внутренне использует стандартный Сервлет 3,0 API без потребности в сторонних библиотеках.
  • JSF 2.1 требует минимума Java 1.5, Сервлет 2.5 и EL 2.1. Сервлет 3.0 является дополнительным и позволит JSF 2.1 автоматически работать *.jsf ни с кем необходимым web.xml конфигурация пока существует a faces-config.xml.
  • JSF 2.0 требует минимума Java 1.5, Сервлет 2.5 и EL 2.1. Можно использовать Сервлет 2.4 при предоставлении собственного EL 2.1 API/impl.
  • JSF 1.2 требует минимума Java 1.5, Сервлет 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, Сервлет 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, сервер JAVA-приложения Sun, WebSphere 5/6.x

Установка JSF

В зависимости от используемого сервера JSF может уже быть встроен (абсолютный Java контейнеры EE, такие как WildFly, JBoss EAP, TomEE, Payara, GlassFish, WebSphere, и т.д.), или не (базовые контейнеры JSP/Servlet, такие как Tomcat, Причал, и т.д.). Если сервер не поставлется со встроенным JSF, то необходимо вручную установить реализацию JSF на выборе (Mojarra или MyFaces). Не забывайте JSTL, те базовые контейнеры JSP/Servlet обычно также даже не поставлются с JSTL.


Ресурсы

Учебные руководства онлайн

Офлайновые учебные руководства ("книги")

Реализации JSF

  • Mojarra - Ссылочная реализация (RI) Oracle, стандартный компонент, например, WildFly
  • MyFaces - Альтернатива Apache, стандартный компонент, например, TomEE

Библиотеки компонента/утилиты JSF

  • PrimeFaces (витрина) - библиотека компонентов, на основе jQuery + jQuery UI
  • OmniFaces (витрина) - служебная библиотека, совместимая с любой библиотекой компонентов JSF
  • RichFaces (витрина) - библиотека компонентов, на основе jQuery + пользовательский UI. (Достигнутый июнь 2016 конца жизненного цикла)
  • IceFaces (витрина) - библиотека компонентов, клон PrimeFaces 2.x + некоторые расширенные компоненты
  • Томагавк - библиотека компонентов, основные расширения стандартного JSF, например, переключатели без таблицы
  • Тринидад - библиотека компонентов, улучшенные расширения стандартного JSF + пользовательский JS/ajax
  • OpenFaces (витрина) - библиотека компонентов, на основе пользовательского JS/ajax + пользовательский UI
  • BootsFaces (витрина) - библиотека компонентов, на основе Начальной загрузки
  • ButterFaces - библиотека компонентов, на основе Начальной загрузки
  • AngularFaces - библиотека компонентов, устраняющая разрыв между JSF и Угловой
  • TornadoFaces - библиотека компонентов с гладким Виджетом API, поддерживающий стили ДЕРЗОСТИ

Часто задаваемые вопросы

Больше ссылок:

Связанные теги