Файлы шаблонов и составные компоненты просто для удобства конечного пользователя, потому что их легко писать и использовать.Базовая реализация JSF (компоненты f:
и h:
) и библиотеки компонентов, такие как PrimeFaces , используют полноценные компоненты пользовательского интерфейса.Это классы, которые расширяют класс JSF UIComponent
.
Разработка классов UIComponent
является относительно сложной и неуклюжей.При их разработке необходимо учитывать множество вещей, таких как написание файлов тегов (вы должны определить каждый атрибут в файле XML), файлов конфигурации (связывать компонент и средство визуализации друг с другом) и т. Д., Нов итоге вы получите более модульную и многократно используемую модель и с большей эффективностью.Они даже могут использоваться на старых старых файлах JSP.
Шаблоны Facelets отличаются от файлов JSP, не скомпилированных для классов Java.Они просто загружаются и выполняются синтаксическим анализатором SAX (XML), который сам по себе уже написан на Java.
Обновите в соответствии с комментарием: обычно он выполняетЛучше, если будет задействовано относительно много бизнес / условной логики, которая никак не связана с представлением, например, куча тегов <c:if>
, <c:choose>
и т. д., основанных на вводе, не контролируемом пользователем.
Книга JSF 2.0 Полный справочник также охватывает пользовательскую разработку UIComponent в главе 10 «Некомпозитные компоненты» .Учебное пособие по Java EE 5 также охватывает , но нацелено на JSF 1.2.К сожалению, этого нет в руководстве по Java EE 6 для JSF 2, хотя методика не изменилась, но есть несколько новых аннотаций, о которых вам нужно знать.