Реализации JSF и библиотеки компонентов
Я только начал использовать JSF, и у меня есть три вопроса, связанных с реализациями JSF и библиотеками компонентов
В чем разница между реализациями JSF и библиотеками компонентов?
Какие существуют различные реализации JSF (например, Apache MyFaces) и чем они отличаются друг от друга?
Какие существуют доступные библиотеки компонентов JSF (например, обогащенные грани и грани льда) и в чем разница между каждой из них?
Любые соответствующие ссылки, дающие точную информацию об этом, также будут полезны.
2 ответа
В чем разница между реализациями JSF и библиотеками компонентов?
Реализации JSF реализуют Спецификацию API JSF. Они содержат, по крайней мере, стандартные компоненты для отображения любого из доступных базовых ("простых ванильных") HTML-элементов.
Библиотеки компонентов JSF просто добавляютэто дополнение к базовой реализации, часто с большей скинируемостью, настраиваемостью, расширяемостью и так далее, так что вы можете просто запрограммировать его с одним компонентом вместо набора компонентов или пользовательских компонентов, в конце концов вместе с связка связанного кода JS/CSS.
Какие существуют различные реализации JSF (например, Apache MyFaces) и чем они отличаются друг от друга?
Существуют две (основные) реализации JSF, а именно Oracle Mojarra и Apache MyFaces. Технически нет особой разницы, поскольку им обоим нужно просто придерживаться спецификации API JSF. Лучше взгляните на надежность, доступность документации, уровень поддержки, уровень обслуживания (скорость улучшений, исправления ошибок, выпуски и т. Д.) И так далее. Смотрите также: Разница между Мохаррой и MyFaces
Какие существуют доступные библиотеки компонентов JSF (например, обогащенные грани и грани льда) и в чем разница между каждой из них?
Их много, я ограничусь наиболее используемыми / хорошо известными библиотеками. Если вы хотите больше возможностей для создания скинов, посмотрите на PrimeFaces ( демо), RichFaces ( демо) или ICEFaces ( демо). Если вы хотите больше возможностей Ajaxical (помимо того, что уже есть в JSF 2.0), посмотрите на PrimeFaces, RichFaces, ICEFaces, OpenFaces ( демо) или Тринидад ( демо). Если вам нужны более специализированные / улучшенные компоненты, посмотрите на PrimeFaces, RichFaces, ICEFaces, OpenFaces, Тринидад или Томагавк ( демо). Разница в основном заключается в доступном наборе компонентов и степени настраиваемости.
Далее есть также служебная библиотека JSF. Вы, вероятно, узнаете, что заново изобретаете / переписываете некоторые FacesUtil
, JSFUtils
и т.д. классы каждый раз и / или пользовательские теги / компоненты для решения типичных и повторяющихся JSF-специфических проблем. OmniFaces ( demo) разработан, чтобы заполнить этот пробел, предоставляя многократно используемую стандартную библиотеку утилит JSF, которую можно использовать в сочетании с каждой реализацией JSF и библиотекой компонентов.
Реализация - это то, что реализует спецификацию JSF. Библиотека компонентов - это то, что добавляет дополнительную функциональность (обычно дополнительные виджеты пользовательского интерфейса) к базовой спецификации.
Я предполагаю, что основным отличием является соответствие стандартам. Насколько мне известно, Glassfish является единственным сервером приложений, который полностью поддерживает новый стандарт JSF, выпущенный как часть Java EE 6.
Извините, я не уверен насчет последнего вопроса.