Вопрос

Вчера я увидел презентацию Java Server Faces 2.0, которая выглядела действительно впечатляюще, хотя в настоящее время я являюсь счастливым разработчиком ASP.NET MVC/jQuery.Что мне больше всего понравилось в JSF, так это огромное количество компонентов пользовательского интерфейса с поддержкой AJAX, которые, кажется, делают разработку намного быстрее, чем с ASP.NET MVC, особенно на сайтах с большим количеством AJAX.Интеграционное тестирование тоже выглядело очень хорошо.

Поскольку в презентации подчеркивались только преимущества JSF, хотелось бы услышать и о другой стороне.

Итак, мои вопросы:

  • Каковы основные недостатки Java Server Faces 2.0?
  • Что может заставить разработчика JSF рассмотреть возможность использования ASP.NET MVC вместо JSF?
Это было полезно?

Решение

Недостатки JSF 2.0?Честно говоря, если не считать относительно крутой кривой обучения, когда у вас нет глубоких знаний о базовая веб-разработка (HTML/CSS/JS, серверная и клиентская стороны и т. д.) и базовый API сервлетов Java (запрос/ответ/сессия, переадресация/перенаправление и т.д.), серьезных недостатков в голову не приходит.JSF в своей текущей версии все еще необходимо избавиться от негативного имиджа, который он приобрел в ранние годы, когда у него было несколько серьезных недостатков.

JSF 1.0 (март 2004 г.)

Это был первый выпуск.Он был загроможден ошибками как в ядре, так и в области производительности, о которых вы не хотите знать.Ваше веб-приложение не всегда работало так, как вы интуитивно ожидали.Вы, как разработчик, убежали бы, плача.

JSF 1.1 (май 2004 г.)

Это был релиз с исправлением ошибок.Производительность по-прежнему не сильно улучшилась.Был и один существенный недостаток:вы не можете безупречно встроить HTML в страницу JSF.Весь простой ванильный HTML визуализируется до дерево компонентов JSF.Вам нужно завернуть всю простую ваниль в <f:verbatim> теги, чтобы они были включены в дерево компонентов JSF.Хотя это соответствовало спецификации, это вызвало много критики.См. также а.о. JSF/Фейсеты:почему не рекомендуется смешивать JSF/Facelets с тегами HTML?

JSF 1.2 (май 2006 г.)

Это был первый релиз новой команды разработчиков JSF, возглавляемой Райаном Лубке.Новая команда проделала огромную работу.Также произошли изменения в спецификации.Основным изменением стало улучшение обработки представлений.Это не только полностью отделило JSF от JSP, поэтому можно было использовать технологию представления, отличную от JSP, но также позволило разработчикам встраивать простой HTML-код в страницу JSF, не беспокоясь о <f:verbatim> теги.Еще одним важным направлением деятельности новой команды было улучшение производительности.Во время существования эталонной реализации Sun JSF 1.2 (которая имела кодовое название Мохарра начиная со сборки 1.2_08, примерно в 2008 году), практически каждая сборка поставлялась с (значительными) улучшениями производительности наряду с обычными (незначительными) исправлениями ошибок.

Единственным серьезным недостатком JSF 1.x (включая 1.2) является отсутствие области видимости между запрос и сессия объем, так называемый беседа объем.Это вынудило разработчиков возиться со скрытыми элементами ввода, ненужными запросами к базе данных и/или злоупотреблять областью сеанса всякий раз, когда нужно сохранить исходные данные модели в последующем запросе, чтобы успешно обрабатывать проверки, преобразования, изменения модели и вызовы действий в дальнейшем. сложные веб-приложения.Боль можно смягчить, приняв стороннюю библиотеку, которая сохраняет необходимые данные в последующем запросе, например MyFaces Томагавк <t:saveState> компонент, JBoss шов объем разговора и Оркестр MyFaces рамки разговора.

Еще одним недостатком для приверженцев HTML/CSS является то, что JSF использует двоеточие : в качестве символа-разделителя идентификатора для обеспечения уникальности элемента HTML. id в сгенерированном выводе HTML, особенно если компонент повторно используется в представлении (шаблоны, итерация компонентов и т. д.).Поскольку это недопустимый символ в идентификаторах CSS, вам придется использовать \ чтобы избежать двоеточия в селекторах CSS, что приводит к уродливым и странным селекторам, таким как #formId\:fieldId {} или даже #formId\3A fieldId {}.Смотрите также Как использовать идентификатор HTML-элемента, сгенерированный JSF, с двоеточием «:» в селекторах CSS? Однако, если вы не пурист, прочтите также По умолчанию JSF генерирует непригодные для использования идентификаторы, которые несовместимы с частью веб-стандартов CSS..

Кроме того, JSF 1.x не поставлялся с возможностями Ajax из коробки.На самом деле это не технический недостаток, но из-за ажиотажа вокруг Web 2.0 в тот период он стал функциональным недостатком. Эксадель рано представил Ajax4jsf, который был тщательно разработан в течение многих лет и стал основной частью JBoss RichFaces библиотека компонентов.Другие библиотеки компонентов также поставлялись со встроенными возможностями Ajax, наиболее известная из них — ICEfaces.

Примерно в середине существования JSF 1.2 была представлена ​​новая технология представления на основе XML: Фасеты.Это давало огромные преимущества перед JSP, особенно в области шаблонов.

JSF 2.0 (июнь 2009 г.)

Это был второй крупный релиз, модным словечком которого был Ajax.Было много технических и функциональных изменений.JSP заменен на Facelets в качестве технологии представления по умолчанию, а Facelets был расширен за счет возможностей создания пользовательских компонентов с использованием чистого XML (так называемый композитные компоненты).Смотрите также Почему Facelets предпочтительнее JSP в качестве языка определения представлений, начиная с JSF2.0?

Силы «Аякса» были представлены в духе <f:ajax> компонент, который имеет много общего с Ajax4jsf.Были введены аннотации и усовершенствования, связанные с соглашением о конфигурации. убийство многословный faces-config.xml файл как можно больше.Кроме того, символ-разделитель идентификатора контейнера именования по умолчанию : стал настраиваемым, поэтому сторонники чистоты HTML/CSS могли вздохнуть с облегчением.Все, что вам нужно сделать, это определить его как init-param в web.xml с именем javax.faces.SEPARATOR_CHAR и убедитесь, что вы сами не используете персонажа где-либо в идентификаторе клиента, например -.

И последнее, но не менее важное: была введена новая область применения — вид объем.Это устранило еще один существенный недостаток JSF 1.x, описанный ранее.Вы просто объявляете компонент @ViewScoped чтобы включить область диалога, не заморачиваясь всеми способами сохранения данных в последующих (диалоговых) запросах.А @ViewScoped bean-компонент будет жить до тех пор, пока вы впоследствии отправляете и переходите к одному и тому же представлению (независимо от открытой вкладки/окна браузера!), синхронно или асинхронно (Ajax).Смотрите также Разница между областью просмотра и запроса в управляемых компонентах и Как правильно выбрать область применения бина?

Хотя практически все недостатки JSF 1.x были устранены, существуют специфические ошибки JSF 2.0, которые могут стать препятствием.А @ViewScoped сбой в обработчиках тегов из-за проблемы куриного яйца при частичной государственной экономии.Это исправлено в JSF 2.2 и перенесено в Mojarra 2.1.18.Также передача пользовательских атрибутов, таких как HTML5 data-xxx не поддерживается.В JSF 2.2 это исправлено благодаря новой функции сквозных элементов/атрибутов.Дальнейшая реализация JSF Mojarra свой набор проблем.Сравнительно многие из них связаны с иногда неинтуитивное поведение <ui:repeat>, новая реализация частичного сохранения состояния и плохо реализованный флэш-прицел.Большинство из них исправлено в версии Mojarra 2.2.x.

Примерно во времена JSF 2.0 PrimeFaces был представлен на основе jQuery и пользовательского интерфейса jQuery.Она стала самой популярной библиотекой компонентов JSF.

JSF 2.2 (май 2013 г.)

С появлением JSF 2.2 HTML5 стал использоваться как модное слово, хотя технически он поддерживался только во всех старых версиях JSF.Смотрите также Поддержка JavaServer Faces 2.2 и HTML5, почему XHTML все еще используется.Наиболее важной новой функцией JSF 2.2 является поддержка атрибутов пользовательских компонентов, открывающая мир возможностей, таких как пользовательские группы переключателей без таблиц.

Помимо ошибок, специфичных для реализации, и некоторых «неприятных мелочей», таких как невозможность внедрения EJB в валидатор/конвертер (уже исправлено в JSF 2.3), в спецификации JSF 2.2 нет серьезных недостатков.

MVC на основе компонентов и MVC на основе запросов

Некоторые могут решить, что основным недостатком JSF является то, что он обеспечивает очень ограниченный контроль над сгенерированным HTML/CSS/JS.Это не собственность JSF, просто потому, что это основанный на компонентах MVC-фреймворк, а не на основе запроса (действия) MVC-фреймворк.Если высокая степень управления HTML/CSS/JS является вашим основным требованием при рассмотрении инфраструктуры MVC, то вам уже следует смотреть не на структуру MVC на основе компонентов, а на структуру MVC на основе запросов, например Весенний MVC.Вам нужно только принять во внимание, что вам придется написать весь этот шаблон HTML/CSS/JS самостоятельно.Смотрите также Разница между запросом MVC и компонентом MVC.

Смотрите также:

Другие советы

После 5 лет работы с JSF я думаю, что я могу добавить мои 2 цента.

Два Основной JSF. Недостатки:

  1. Большая кривая обучения. JSF сложен, это просто правда.
  2. Его составная часть природа. Каркас на основе компонентов пытается скрыть истинную природу сети, которая приходит с огромным количеством осложнений и бедствий (вроде не поддерживающих Get в JSF в течение почти 5 лет).
    ИМХО скрывает HTTP-запрос / ответ от разработчика - это огромная ошибка. По моему опыту каждый компонентный каркас добавляет абстракцию в веб-разработку, и эта абстракция приводит к ненужной накладной и более высокой сложности.

И незначительный Недостатки, которые приходят на мой взгляд:

  1. По умолчанию идентификатор объекта состоит из идентификаторов его родителей, например Form1: Button1.
  2. Нет простого способа прокомментировать неверную страницу фрагмент. Ярлык <ui:remove> Нужен синтаксически правильный контент, который в любом случае анализируется.
  3. Низкокачественные 3-я сторонние компоненты, которые, например, не проверяют isRendered() внутри processXxx() метод перед продолжением.
  4. Включение меньше и Sencha трудно.
  5. Не играет хорошо с отдыхом.
  6. Не так просто для UX дизайнеров, потому что готовые к использованию компоненты имеют свои собственные стили CSS, которые должны быть перезаписаны.

Не поймите меня неправильно. В качестве компонента Framework JSF в версии 2 действительно хороша, но это все еще компонент, и всегда будет ...

Пожалуйста, посмотрите на низкую популярность гобелен, калитки и низкого энтузиазма опытных разработчиков JSF (что еще более значимое). А для контрасности взгляните на успех рельсов, граус, Джанго, Играть! Framework - все они находятся на основе действий и не пытаются скрыться от программиста Истинный запрос / ответ и природа без гражданства из сети.

Для меня это основной недостаток JSF. Imho jsf может соответствовать некоторым типам приложений (интранет, форм-интенсивных), но для реальной жизни веб Применение Это не хороший способ пойти.

Надеюсь, это поможет кому-то с его / ее вариантами, которые относится к передней части.

Несколько недостатков, которые поступают на ум:

  1. JSF - это каркас на основе компонентов. Это имеет неотъемлемые ограничения, которые связаны с подвикацией компонентной модели.
  2. AFAIK JSF поддерживает только пост, поэтому, если вы хотите получить куда-то, что вам нужно сделать простой сервлет / JSP.
  3. Большинство компонентов стараются предоставить абстракции на домены, такие как реляционные базы данных и интерфейс JavaScript, и много времени эти абстракции являются «утечками» и очень трудно отладки.
  4. Эти абстракции могут быть хорошей отправной точкой для младшего разработчика или кому-то не комфортно с определенным доменом (например, в интерфейсе JavaScript), но очень трудно оптимизировать для производительности, так как есть несколько слоев, и большинство людей, которые используют их Имейте мало понимания того, что происходит под капотом.
  5. Механизмы шаблонов, которые обычно используются с JSF, не имеют ничего общего с тем, как работают веб-дежигры. Редакторы WYSIWYG для JSF являются примитивными и в любом случае, ваш дизайнер даст вам HTML / CSS, которые вам придется потратить преобразование возрастов.
  6. Такие, как выражения EL, не проверяются статически, и компилятор, так и IDE не выполняют хорошую работу при нахождении ошибок, поэтому вы получите ошибки, которые вам придется уловить во время выполнения. Это может быть в порядке для динамически набранного языка, такого как Ruby или PhP, но если я должен противостоять прозрачному раздуванию java Ecosystem, я требую, чтобы набрать для моих шаблонов.

Подводить итоги: Время, которое вы сэкономите с JSF, от того, чтобы избежать, чтобы записать код котеля JSP / Servlet / Bean, вы потратили его x10, чтобы сделать его масштабированием и сделать именно то, что вы хотите, чтобы это сделать.

Для меня самый большой недостаток JSF 2.0 - это кривая обучения не только jsf, но, но и библиотеки компонентов, которые вы должны использовать, чтобы получить его для получения полезной работы. Рассмотрим ошеломляющее количество спецификаций и стандартов, с которыми вы имеете дело, чтобы действительно был опытным:

  • HTML в различных воплощениях. Не притворяйтесь, что вам не нужно это знать.
  • Http - когда вы не можете выяснить, что происходит, вы должны открыть Firebug и посмотреть. Для этого вам нужно знать это.
  • CSS - нравится это или нет. Это не так плохо, и есть несколько хороших инструментов, по крайней мере.
  • XML - JSF, вероятно, первое место вы используете пространства имен на эту степень.
  • Спецификация сервлета. Рано или поздно вы получите в этот пакет методов вызова в этом пакете. Помимо того, что вы должны знать, как ваши лекарства превращаются в XHTML или что-то еще.
  • JSP (в основном, так что вы знаете, почему вам это не нужно в JSF)
  • JSTL (опять же, в основном, чтобы справиться с устаревшими рамочными рамками)
  • Язык выражения (EL) в различных формах.
  • Ecmascript, JavaScript или что-то еще, что вы хотите назвать это.
  • JSON - Вы должны знать это, даже если вы не используете его.
  • Ajax. Я бы сказал, что JSF 2.0 делает приличную работу по сокрытию этого от вас, но вам все еще нужно знать, что происходит.
  • Дом. И как браузер использует его. Смотрите Ecmascript.
  • Дом События - тема все само собой.
  • Архитектура настойчивости Java (JPA), именнона в случае, если вы хотите, чтобы ваше приложение имела любующую базу данных.
  • Сама Ява.
  • JSee, пока вы на этом.
  • Спецификация впрыска зависимостей контекста (CDI) и как она столкнутся с и используется и используется с JSF 2.0
  • JQuery - я хотел бы видеть, как ты ладишь без него.

Теперь, как только вы закончите с тем, что вы можете включить с фирменными спецификациями, а именно библиотеки компонентов и библиотеки поставщика, которые вы заберете по пути:

  • Открытые (Моя компонент Библиотека выбора)
  • Richfaces
  • MyFaces
  • Ледяные лица
  • EclipseLink (мой провайдер JPA)
  • Гибернат
  • Сварки

И не забывайте контейнер! И все эти файлы конфигурации:

  • Glassfish (2, 3 и т. Д.)
  • Jboss.
  • Кот

Итак - это делает это легко? Конечно, JSF 2.0 - «Легко», пока все, что вы хотите сделать, это самые основные веб-страницы с простейшими взаимодействиями.

Проще говоря, JSF 2.0 является самым сложным и громоздким Mishmash из склеенных технологий вместе, как сегодня существует в вселенной программного обеспечения. И я не могу думать ни о чем, я бы предпочел использовать.

  1. Неопытные разработчики обычно создают мучительно медленные приложения, а код уродлив, и его сложно поддерживать.Начать обманчиво просто, но на самом деле требуются некоторые вложения в обучение, если вы хотите писать хорошие программы.
  2. По крайней мере, в начале вы часто будете «застревать» на какой-то проблеме и будете тратить больше времени на чтение постов в Интернете, чем на работу :) Через некоторое время этого будет все меньше и меньше, но это все равно может раздражать.
  3. Еще больше раздражает, когда вы обнаруживаете, что проблема связана не с недостатком знаний/ошибкой, а с ошибкой.Мохарра была (есть?) довольно глючной, а еще один слой компонентов добавляет еще больше проблем.Richfaces был самой дерьмовой программой, когда-либо написанной :) Не знаю, как обстоят дела сейчас в 4-й версии.У нас есть Primefaces, который лучше, но вы все равно столкнетесь с ошибками или отсутствием функций, особенно с более экзотическими компонентами.И теперь вам нужно будет платить за обновления Primefaces.Так что я бы сказал, что это глючно, но становится лучше, особенно после того, как в версии 2.2 исправлены некоторые проблемы со спецификациями.Фреймворк становится более зрелым, но все еще далек от совершенства (может быть, myfaces лучше?).
  4. Я не считаю его особенно гибким.Часто, если вам нужно что-то очень сильно настроенное и нет компонентов, которые могли бы это сделать, это будет немного болезненно.Опять же, я говорю с точки зрения обычного разработчика - с крайними сроками, руководствами по быстрому чтению и поиском в stackoverflow, когда вы застреваете, потому что нет времени изучать, как это на самом деле работает :) Часто кажется, что некоторые компоненты содержат «почти» то, что вам нужно, но не совсем, и иногда вы можете потратить слишком много времени, чтобы заставить его делать то, что вы хотите :) Нужно быть осторожным, оценивая, лучше ли создать свой собственный или подвергнуть пыткам существующий компонент.На самом деле, если вы создаете что-то действительно уникальное, я бы не рекомендовал JSF.

Короче говоря, мои недостатки таковы:Сложность, Не очень плавный ход разработки, глючный, негибкий.

Плюсы конечно тоже есть, но вы не об этом спрашивали.В любом случае, это мой опыт работы с фреймворком, у других могут быть разные мнения, поэтому лучший способ - просто попробовать его некоторое время, чтобы посмотреть, подходит ли он вам (просто что-то более сложное, а не наивные примеры - JSF действительно сияет там :) ИМХО, лучший вариант использования для JSF — это бизнес-приложения, такие как CRM и т. д.

«JSF будет выводить HTML-слой просмотра HTML и JavaScript, который вы не можете контролировать или изменять, не переходя в код контроллера».

На самом деле JSF дает вам гибкость, вы можете либо использовать стандартные / сторонние компоненты, либо создавать свои собственные, которые у вас есть полный контроль над тем, что визуализируется. Это всего лишь один XHTML, вам нужно создать свои пользовательские компоненты с JSF 2.0.

Мы разработали образец проекта с помощью JSF (это исследование заняло три недели, поэтому мы могли кое-что потерять!)

Мы стараемся использовать ядро ​​jsf, если нужен компонент, мы использовали PrimeFaces.

Проект представлял собой веб-сайт с навигацией.Каждая страница должна загружаться через ajax при нажатии на меню.

У сайта есть два варианта использования:

  1. Страница с сеткой.Сетка загружается через ajax и должна поддерживать сортировку и разбивку по страницам.
  2. Страница мастера, состоящая из трех шагов.Каждая страница имеет проверку на стороне клиента (для простых проверок) и проверку базы ajax на стороне сервера (для сложных проверок).Любое исключение сервера (из уровня обслуживания) должно отображаться на той же странице мастера без перехода на следующую страницу.

Мы нашли это:

  1. Вам нужно использовать некоторые хаки из omniFaces, чтобы исправить состояние просмотра JSF.Состояние JSF будет повреждено, если вы включите страницы друг в друга через ajax.Похоже, это ошибка в JSF и может быть исправлена ​​в следующих выпусках (не в версии 2.3).
  2. JSF Flow не работает корректно с ajax (или мы не смогли заставить его работать!) Вместо этого мы пытаемся использовать компонент мастера Primeface, но проверка клиента, похоже, не поддерживается и означает, что она не является стандартным стандартом потока JSF.
  3. При использовании некоторых компонентов jQuery, таких как jqGird, и вам необходимо загрузить результаты JSON, вам рекомендуется использовать чистый сервлет. JSF ничего вам не сделает.Поэтому, если вы используете такие компоненты, ваш проект не поместится в JSF.
  4. Мы пытаемся выполнить некоторые клиентские сценарии, когда ajax завершается ajaxComplete и мы обнаружили, что в PF 4 реализованы собственные события ajax.У нас были некоторые компоненты jQuery, и нам нужно изменить их код.

Если вы измените приведенный выше образец на не Аякс project (или, по крайней мере, меньше проекта ajax), вы не столкнетесь со многими вышеперечисленными проблемами.

Подведем итог нашего исследования так:

JSF не очень хорошо работает на полностью основанном на ajax веб-сайте.

Конечно, мы находим в JSF множество полезных функций, которые могут быть очень полезны в некоторых проектах, поэтому учитывайте потребности вашего проекта.

Пожалуйста, обратитесь к технической документации JSF, чтобы ознакомиться с преимуществами JSF, и, на мой взгляд, самым большим преимуществом JSF является ПОЛНАЯ И ОГРОМНАЯ поддержка со стороны @BalusC ;-)

Я вообще не сталкиваюсь с Java Server. Но IMHO основным недостатком является то, что это на стороне сервера. Я устал от обучения и использования структур веб-презентационных слоев сервера, таких как веб-формы ASP.NET, ASP.NET MVC, FACKES JAVA Server, Struts, PHP Frameworks и Ruby on Rails Frameworks. Я прощаюсь со всеми из них, и я сказал привет angularjs и Typeyctry. Мой слой презентации работает на браузере. Я не имеет значения, если он обслуживается Windows IIS работает PHP или ASP.NET или если он обслуживается веб-сервером Apache, работающим на Linux. Мне просто нужно учиться только одной рамки, которая работает везде.

Только мои два цента.

Для меня самый большой недостаток JSF является плохой поддержкой программно (динамически) сгенерированных страниц.
Если вы хотите построить свою страницу (создайте модель компонента страницы) динамически из кода Java. Например, если вы работаете над конструктором Wysiwyg веб-страницы. Адекватная документация этого использования в общем случае в общем доступе. Есть много баллов, где вы должны экспериментировать, и развитие тихо медленно. Многие вещи просто не работают, как вы ожидаете. Но вообще его возможный взломать это как-то.
Хорошо, что это не проблема в философии или архитектуре JSF. Это просто не разработано достаточно (насколько я знаю).

JSF 2 принес составные компоненты, которые должны простыми компонентами, но их поддержка динамической (программной) конструкции очень плохая. Если вы преодолели тихий сложный и практически незарегистрированный процесс конструкции динамического композиционного компонента, вы узнаете, что если вы устанавливаете несколько составных компонентов, немного глубже, они перестают работать, бросая некоторые исключения.

Но кажется, что сообщество JSF знает об этих недостатках. Они работают над этим, как вы можете видеть из этих двух ошибок
http://java.net/jira/browse/javaserverfaces-1309.
http://java.net/jira/browse/javaserverfaces_spec_public-599.

Ситуация должна быть лучше с JSF 2.2, по крайней мере, если речь идет о спецификации.

Комментируя мои последние несколько месяцев опыта Primefaces / JSF:

  • Если вы можете использовать компоненты «от полки», я думаю, это не ужасно.
  • Однако он не играет хорошо, как только вы выходите на улицу и нуждаетесь в пользовательском UIS. - Например, нам нужно было использовать Bootstrap Twitter для нашего проекта. (Не загрузка из выпяции).
    • Теперь наши страницы работают следующим образом:
      • Страница нагрузки.
      • Пользователь взаимодействует с выпискими функциями Ajax
      • Перерыв привязок JavaScript JavaScript Bootstrap
      • Мы запускаем дополнительный JavaScript, чтобы подписать все

Обещание JSF, чтобы избежать написания JavaScript, превратилась в написание больше JavaScript, чем если бы, если бы не использовал Pramefaces - и что JavaScript, чтобы исправить то, что выравниваются с парами.

Это точка времени - если только вы снова не используете «от полки». Также действительно уродливые (вымысленные) при работе с селеном. Это все может быть сделано - но опять - есть только так много времени.

Определенно избегайте этого, если вы работаете с командой UX / Design и необходимость быстротературной итерации на пользовательском интерфейсе - вы можете сэкономить время, изучая jQuery / писать прямой HTML - или глядя на реагирование / угловой.

У JSF есть много преимуществ, вопрос, находясь в недостатке, позвольте мне добавить пару точек на нем.

На практическом сценарии реализации веб-проекта с кадрами с временными кадрами вам нужно следить за следующими факторами.

  • У вас есть достаточно старших членов в вашей команде, которые могут предложить лучшие элементы управления, подходящие для каждого сценария?
  • У вас есть пропускная способность, чтобы приспособиться к начальной кривой обучения?

  • У вас есть достаточно опыта в вашей команде, которая может просмотреть JSF
    Вещи производит разработчиками?

Если ваш ответ «нет» для вопросов, вы можете в конечном итоге в негодной кодовой базе.

JSF имеет только один недостаток: перед началом «JSF» разработки вы должны четко понимать веб-разработку, Core Java и переднюю архитектуру.

В настоящее время «новые» JavaScript Frameworks просто пытаются скопировать / вставить модель на основе компонентов «JSF».

Среди всех «основных» фреймворк, таких как весенний MVC, калитка, гобелен и т. Д., JSF Java EE со своими композиционными компонентами является наиболее разработанным презентационным слоем и компонентной технологией. Это немного громоздкое и неполное по сравнению с решениями, предоставляемыми Hybridjava.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top