Ограничений, о которых вы говорите, на самом деле нет. JSF полностью поддерживает GET. На самом деле он всегда поддерживал это, хотя и с некоторыми ограничениями. Что вы сделали, так это внедрили #{param.some_id} в свой bean-компонент и предприняли некоторые действия в аннотированном методе @PostContruct.
В JSF 2.0 эта поддержка была значительно расширена, и вы можете подключать к ним стандартные валидаторы и преобразователи, чего нельзя было сделать в JSF 1.x.
Преимуществ у JSF много, но одна вещь, которую я упустил при разработке на простом JSP, — это доступная библиотека преобразователей и валидаторов. Независимо от того, какой веб-разработкой вы занимаетесь, и неважно, насколько причудлив ваш клиентский код, в конечном итоге на сервере должна быть выполнена какая-то операция, а затем вы должны выполнить преобразование и проверку.
С помощью JSF вы можете легко создать собственную библиотеку этих преобразователей и валидаторов или выбрать один из множества уже доступных. С проверкой bean-компонентов (Java EE 6) это можно вывести на следующий уровень: аннотируйте свои объекты ограничениями, и JSF применит их для вас в пользовательском интерфейсе. (обратите внимание, что сам JSF не содержит проверки бина, но поддерживает ее).
Затем я также обнаружил, что наличие простого, но эффективного языка шаблонов может быть очень полезным. Даже если вы используете только несколько компонентов JSF или, возможно, вообще не используете их, вы можете создавать страницы мастер-шаблонов, иметь клиенты шаблонов и помещать свой javascript и HTML на основе jQuery в фрагменты, которые вы можете легко повторно использовать на стороне сервера. JSP действительно имеет только jsp:include для шаблонов, что довольно ограничивает.
Еще одна небольшая удобная вещь с JSF заключается в том, что у вас есть простой программный доступ к объектам запроса и ответа, соответствующим текущему запросу. Если вы не используете преимущества многих основных функций JSF, то при программировании в стиле JSP/Servlet это может быть небольшим преимуществом.
Но, как уже указывал BalusC, возможно, JSF не для вас. Наибольшая выгода при использовании фреймворка для его компонентов. Если вы не планируете их использовать, некоторые запросы могут подойти вам лучше.
person
Arjan Tijms
schedule
12.01.2011