Подтвердить что ты не робот

Java-EE: более простые и простые альтернативы JSF

Мы начинаем разрабатывать веб-приложение с использованием Java EE 6.

Мы были удивлены сложностью созданного JSF HTML. Я имею в виду, что даже простая ссылка содержит код обработки javascript. и это, на мой взгляд, проблема юзабилити, потому что жесты браузера (как "ctrl + click" по ссылке) просто не работают. Кроме того, я подозреваю, что это может ухудшиться, когда нам нужно поддерживать этот код или настраивать дизайн пользовательского интерфейса с помощью фреймворков javascript, таких как jQuery. он снова собирает меня: Webforms vs ASP.Net MVC. сложность в отношении простоты.

Во всяком случае, это мой первый раз с JSF. поэтому я действительно хотел бы ознакомиться с вашим опытом.

Знаете ли вы более простой механизм рендеринга Java EE?

Как ваш опыт разработки с JSF был?

Разработали ли вы веб-приложение с использованием JSF и множество jQuery/ Dojo/Script.aculo.us?

4b9b3361

Ответ 1

Трудно определить, что означает "простой", когда вы спрашиваете о "более простом движке рендеринга". JSF - очень уникальное животное, и я боюсь, что нет ничего проще, что тоже похоже в мире Java.

Мой опыт работы с JSF был ЧРЕЗВЫЧАЙНО положительным, и это исходит от человека с многолетним опытом разработки в ASP.NET. Кривая обучения по-прежнему крутая, и я не могу представить, чтобы сложные корпоративные системы были возможны без какой-либо пользовательской Javascript и, возможно, даже с настраиваемыми компонентами, однако, на мой взгляд, это проще, чем ASP.NET и гораздо менее тяжелый. Они рассмотрели множество проблем, с которыми ASP.NET так трудно работать (например, простые идентификаторы клиентов для соответствия DOM, XHTML).

Недавно я разработал приложение, которое вскоре выйдет на производство, используя только компоненты Primefaces, стандартные личинки Mojarra, один пользовательский компонент и несколько обходных путей Javascript/скрытых полей ввода для ошибок структуры компонентов. Это было потрясающе легко в стороне от нескольких обходных решений, которые мне нужно было реализовать. Я очень доволен результатами, заинтересованными лицами ЛЮБЛЮ ЭТО, и я буду использовать его снова в своем следующем проекте.

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

Ответ 2

Я работаю с JSF в большом проекте. У меня есть опыт работы с JQuery, нормальным HTML/css/javascript, GWT и Gxt. И я могу сказать вам, что JSF является худшим из группы. Если вам нравится, чтобы ваш внутренний код был отдельным и независимым от вашего кода переднего плана, JSP не подходит. Это неудобно связывает ваш интерфейс с вашим back-end без четкого разделения проблем. Другая проблема с JSF заключается в том, что очень сложно обвести голову. Создание замечательных страниц AJAX при использовании интерфейсных технологий (например, javascript, html и css) очень просто. Мой 14-летний сын обучается тому, как это делается в школе. Получение такого же эффекта с помощью JSF невероятно сложно. Посмотрите, как определить ссылку: <h:commandLink value="New" immediate="true" action="#{projectUiService.showProjectCreate}" />. И нет способа указать URL-адрес формы. Вы должны использовать управляемую JSF beans и навигационную семантику. Это совершенно новый внешний интерфейс. Поэтому, даже если вы хотите создать стиль интерфейса или добавить JQuery, вы будете набиты.

Настройка среды сборки и среды выполнения также является болью. В jar файлах так много взаимозависимостей, что, если у вас нет правильной комбинации JSF, Richfaces и Spring Jars, у вас нет надежды на то, чтобы ваше приложение даже вышло из среды сборки сборки. Если вы хотите получить намек на это, перейдите на сайт поиска maven и найдите класс javax.faces.component.UIViewRoot. У всех и у их собаки есть это. Также обратите внимание на javax.faces и com.sun.faces - какая разница? Кто знает, но они не работают вместе. И некоторые версии работают только с определенной версией RichFaces.

Мой совет - оставайся хорошо понятным. Дайте вашему приложению Spring back-end и обычный интерфейс HTML. В JSF вы не можете написать приличное приложение для крупных предприятий. Это было бы слишком сложно. У вас будет огромная монолитная кодовая база, которую почти невозможно будет поддерживать.

Ответ 3

Вам действительно нужна инфраструктура на основе компонентов, например JSF, или вы ищете более традиционную структуру MVC на основе веб-запросов? Если это так, вы можете посмотреть в Apache Struts2 или Spring MVC. Spring MVC требует, чтобы вы использовали базовую библиотеку Spring.

Ответ 4


Я работаю с JSF в течение 3 лет, и могу сказать, что самая сильная вещь в этом состоит в том, что он абстрагирует связь между браузером (ввод формы или действия) HTTP-запрос и Java.
Для JSF есть богатые библиотеки, такие как: ICEfaces, RichFaces, ADF Faces, PrimeFaces, что дает вам большое количество богатых компонентов, которых может быть достаточно для вас.
JSF пытается сделать разработку веб-приложений более близкой к настольным приложениям. Он рассматривает наиболее распространенные задачи для веб-приложения (независимо от технологии) и автоматизирует их с помощью LifeCycle. Однако, если вы хотите в некоторых случаях определенного поведения, отличного от того, как работает компонент, вы должны сделать некоторые обходные пути, или создавать собственные компоненты (которые могут быть трудными, за исключением составных компонентов).
Я успешно интегрировал JS для задач, которые не требовали запускать какое-либо действие в Java, например, выбирать все флажки, скрывать/показывать некоторые части страницы и т.д.
JSF очень прост, но очень эффективен и требует определенных знаний для некоторых задач.
Последняя версия JSF 2.0 распространяется на общие проблемы, с которыми JSF сталкивался из-за своей природы POST, поэтому теперь я очень доволен этим.
Что касается жестов пользователей, таких как ctrl + click, то как работают веб-приложения в JSF немного отличные от обычных, кнопки Back, Forward, Refresh могут работать не так, как ожидалось. Но эй, отличные веб-приложения имеют такое же поведение: попробуйте Ctrl + Click в PayPal.. или попробуйте кнопку Back в Vodafone.ro
Если вы хотите полностью контролировать свой HTML-код, используйте простой JSP. Но когда у вас есть огромное веб-приложение, JSF является хорошим вариантом для быстрой разработки приложений (RAD).

Ответ 5

Посмотрите ReXSL, что проще, чем JSF и гораздо более проверяемым. И это MVC.

Ответ 6

Знаете ли вы более простой механизм рендеринга Java EE?

JSF - самая мощная технология для уровня представления в основной среде Java EE. Это стало реальностью только после введения "составных компонентов". Однако менее известное решение HybridJava не менее мощное, но еще более простое, чем JSF.