JSF не имеет хорошей прессы, и плохая репутация ненадлежащим образом оправдана (еще одна упущенная возможность покойного Sun Microsystems). Но, НО много изменилось с тех пор, как был задан вопрос - была выпущена новая версия JSF 2.0.
Так что же случилось с JSF 1.X, что заставило его задуматься по сравнению с Stripes, Spring MVC или Wicket, Play, Click и т. Д.?
- только запросы POST были поддержаны, что вызвало проблемы с производительностью (GET запросы могут быть эффективно кэшировать), трудно достичь bookmarkable URL-адреса и многое другое
- JSF 1.X был основан на страницах JSP, которые не подходили для обработки более сложного жизненного цикла страницы JSF
- Создание компонентов было сложным и громоздким.
- Определение правил судоходства было далеко от гибкой и очень многословной
- обязательной конфигурации XML
- метод Нет чистой управления ресурсами
Хорошая вещь в том, что все эти недостатки были рассмотрены в новой версии JSF.
- Запросы GET и POST одинаково хорошо поддерживаются.
- Конфигурация может быть выполнена с помощью аннотаций (мы можем придерживаться XML, где это лучшее решение), определения правил навигации упрощены, мы даже можем использовать условный подход к настройке.
- Создание компонентов легко.
- Есть новые и очень полезные области компонентов: область обзора и область флэш-памяти (аналогично тому, как это известно из Ruby on Rails), которые позволяют пользователям обрабатывать более сложные потоки.
- Существует стандартный метод управления ресурсами и лучшая управляемость объект ошибки
- Мы можем определить этапы проекта для облегчения обработки проектов в различных средах (тестирования, производства и т.д.)
- на основе XHTML Facelets заменил JSP, как гораздо лучше определение представления альтернатива
- Поддержка встроенных AJAX-запросов
- JSF является частью стандарта Java EE, а это означает, что они не собираются исчезать за одну ночь, если разработчики изредка решают перейти к следующей блестящей и более модной структуре.
И последнее, огромное преимущество JSF 2.X: тоны хорошо спроектированных, великолепно выглядящих и хорошо готовых к использованию компонентов (RichFaces, PrimeFaces, ICEFaces). Эти библиотеки предоставляют сотни обычно используемых на страницах страниц WWW, которые доступны без написания одной строки JavaScript или CSS. Это огромный прирост производительности.
Тем не менее, JSF может иметь проблемы с производительностью по сравнению с основанными на действии фреймами, такими как Stripes, которые более тесно работают с HTTP-запросами, без создания компонентной модели (которая использует больше памяти, больше пропускной способности сети).
Но для применения, которое не должно быть чрезвычайно эффективным, JSF 2.0 - очень хороший и рациональный выбор. Кривая обучения уже не такая крутая, как есть плюс возможность повторного использования существующих компонентов делает ее действительно привлекательной. Глядя с этой точки зрения, полосы не так привлекательны.
Так, например, для корпоративного приложения, используемого в 2000 году, JSF 2.0 будет отличным выбором.
+1 Я очень согласен со всеми этими моментами (особенно с документами - я был удивлен, насколько они хороши, поэтому многие инструменты с открытым исходным кодом оставляют желать лучшего, поваренная книга с полосками потрясающая!) (мой опыт общения с сообществом полос был менее быстрым!) –
@James Хорошая точка, восприятие скорости как-то субъективно, и я обновил свой ответ. –
Полосы просто скалы! Это самая элегантная среда MVC, которая не нуждается в сложной конфигурации XML. Он не имеет крутой кривой обучения, предлагает дружественные ссылки для SEO и молниеносно! – Kdeveloper