JSF Принятие и Популярность - PullRequest
9 голосов
/ 03 ноября 2010

Просто общий вопрос, открытый для обсуждения ...

Мне очень нравится JSF, я новичок в этом, но я предпочитаю его Struts. С точки зрения профессионалов, видите ли вы большое будущее для JSF? Стоит ли молодым программисту вкладывать средства в изучение JSF 2.0 поверх Struts или другой подобной среды? Должен ли я придерживаться обычной JSP? Действительно ли Ajax проще через JQuery, чем JSF?

Мне нравятся новые технологии, и мне нравится то, что я вижу далеко от JSF, но я также хочу быть практичным, и во многих поисках в Google появляются откровенно критические комментарии о JSF 2.0.

Мысли?

1 Ответ

19 голосов
/ 03 ноября 2010

Сравнение JSF со Struts похоже на сравнение яблок с апельсинами. Struts - основанная на запросе / действии инфраструктура MVC, а JSF - основанная на компонентах инфраструктура MVC. Struts также в возрасте. В ИТ вы должны продолжать двигаться. Как правило, основанная на компонентах инфраструктура MVC рассматривается как дальнейшее развитие инфраструктуры MVC, основанной на запросах / действиях.

JSF в настоящее время уже используется очень широко. Он действительно получил много критики раньше. Вы можете прочитать о большинстве из них в вопросе Каковы основные недостатки JSF 2.0? Преимущество JSF состоит в основном в поддержании стандарта Java EE и доступности относительно большого количества сторонних библиотек компонентов ( PrimeFaces , RichFaces , IceFaces , OpenFaces , Томагавк и т. Д.). С JSF очень легко разрабатывать CRUD-приложения и веб-формы с хорошим внешним видом и быстротой.

Однако когда он входит в комплекс, JSF может вызвать некоторые непредвиденные сюрпризы. Хотя спецификация JSF и эталонная реализация (Mojarra) являются достаточно зрелыми с момента последних сборок 1.2, вы можете столкнуться с некоторыми очень специфическими поведенческими проблемами, которые противоречат вашей интуиции. Некоторые из них просто «разработаны» и могут быть поняты только тогда, когда вы детально поймете , как JSF работает под прикрытием, что, в свою очередь, часто сводится к природе HTTP-протокола без сохранения состояния. JSF абстрагирует его по сути «слишком много», так что вы больше его не видите. Некоторые из них являются просто ошибками в используемых сторонних библиотеках компонентов, но это, таким образом, не строго зависит от реализации JSF. Однако обработка ошибок / проблем довольно хороша в большинстве основных библиотек компонентов - если вы своевременно сообщаете об ошибках.

Что касается Ajaxical, JSF 2.0 действительно обеспечивает очень небольшое ручное управление для ручного запуска Ajaxical запросов и управления деревом представления как на стороне сервера, так и на стороне клиента. Просто потому, что это основанная на компонентах инфраструктура MVC, которая поддерживает древовидное состояние с обеих сторон. Вы должны принять во внимание обе стороны, когда берете аяксические работы в свои руки. Если вам действительно нужно больше свободы в действиях, основанных на ajax / request, то основанная на компонентах инфраструктура MVC - просто неправильный выбор. Вместо этого вы должны выбрать MVC-среду, основанную на запросах / действиях, например Spring MVC, Struts или Stripes, вместе с библиотекой JS, такой как jQuery. Однако вместо этого вам придется самостоятельно писать множество шаблонов HTML / CSS / JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...