В чем необходимость JSF, когда пользовательский интерфейс может быть достигнут с помощью библиотек JavaScript, таких как jQuery и AngularJS



Я читал о JSF, что его структура пользовательского интерфейса и предоставляет некоторые компоненты пользовательского интерфейса. Но как это лучше или отличается от количества компонентов, которые доступны из jQueryUI, AngularJS, ExtJS или даже простого HTML, CSS и JavaScript.



Почему кто-то должен изучать JSF?

563   8  

8 ответов:

JSF для простого JSP / Servlet/HTML/CSS / JS похож на jQuery для простого JS: делайте больше с меньшим количеством кода. Взять PrimeFaces (jQuery + jQuery UI based) в качестве примера просмотрите его витрина посмотреть полные примеры кода. BootsFaces (jQuery + Bootstrap UI based) также имеет витрина с примерами кода. Если вы внимательно изучите эти примеры, то увидите, что вам в основном нужен простой класс Javabean в качестве модели и XHTML файл как смотреть.

обратите внимание, что вы не должны видеть JSF как замену одного HTML/CSS/JS, вы также должны учитывать серверную часть (в частности: JSP/Servlet). JSF устраняет необходимость в сборке всех стандартных параметров HTTP-запроса, их преобразовании/проверке, обновлении значений модели, выполнении правильного метода Java для выполнения бизнес-задач и генерации кода шаблона HTML/CSS / JS. С JSF вы в основном получаете страницу XHTML в качестве определения представления и JavaBean-класса, как определение модели. Это значительно ускоряет развитие.

Как и в каждом компоненте на основе веб-MVC framework, у вас есть в JSF менее мелкозернистый контроль над визуализированным HTML/CSS/JS. Добавление пользовательского кода JS не так просто, так как вам нужно учитывать состояние представления JSF на стороне сервера (например, включение отключенной кнопки на стороне JS не позволит включить кнопку на стороне JSF, что, в свою очередь, является огромным преимуществом безопасности). Однако, если это крупный гвоздь программы, тогда скорее ищите веб-фреймворк MVC на основе действий, например Spring MVC. Вы только учтете, что вам нужно написать весь этот код HTML/CSS/JS сами. Кроме того, если вы вернетесь от Facelets к JSP, вы также пропустите расширенные возможности шаблонов.

с другой стороны, если у вас есть большой веб-сайт на основе JSP/Servlet/HTML/CSS/JS/jQuery, и вы хотите рефакторировать повторяющийся код шаблона JSP/Servlet/HTML/CSS/JS / jQuery в многоразовый компоненты, то одним из решений будет JSF. Пользовательские шаблоны, файлы тегов и компоненты могут помочь в этом. В этой перспективе JSF стоит выше JSP/Servlet/HTML/CSS/JS / jQuery (и именно поэтому очень важно понять эти основы, прежде чем погружаться в JSF).

вы можете найти реальный мир kickoff JSF на основе проекта здесь: Java EE Kickoff App. Вы увидите, что он содержит рядом с JSF Как хорошо HTML5,CSS3 и jQuery.

Читайте также:

JSF был создан, чтобы сделать так, чтобы Java-магазины не должны были изучать такие вещи, как jQuery и создавать сложные JS, а вместо этого сосредоточиться на чисто Java-стеке. В мире, где время-деньги и много мест, уже сосредоточенных на разработке Java, один меньше языка/кусок в стеке делает обучение и поддержание быстрее и, следовательно, дешевле.

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

с Javascript и фреймворков, таких как jQuery у вас есть полная гибкость и полный контроль . С ext и т. д. Вы теряете много контроля и должны адаптироваться к структуре. С JSF вы полностью теряете контроль и должны полностью адаптироваться к структуре. Вы вызываетесь в жизненных циклах и т. д. и, наконец, у вас нет контроля, когда вызов на сервер может быть сделан, а где нет. Если вы делаете что-то, что считается "особенным", вы находитесь в очень тяжелом положении. А в мире JSF даже такие базовые вещи как многоколоночная сортировка таблицы или поля, в которых можно ввести только ограниченный набор символов (например, числовое поле), считаются "специальными".

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

но, с JSF и его ограниченной гибкостью, всегда есть только несколько (или даже только один) правильный способ сделать что-то. Вы очень ограничены, вы не можете сделать ярлыки, вы должны писать больше XML и т. д. - но при адаптации к стандарту есть лучший контроль над кодом, который будут производить неопытные или низкоквалифицированные программисты. В результате крупные корпорации любят JSF, потому что это "безопаснее" для них.

когда я перешел из GWT в JSF, я был потрясен, сколько вещей, которые были естественными для меня, считались очень нетипичными и сколько простых вещей было так трудно достичь. Более того, даже самый маленький изменения, такие как добавление ':' sign after label, которое в приложении GWT/jQuery powered будет изменять одну функцию, генерирующую метку, требовало изменения десятков файлов с локализованными свойствами, которые даже не рассматривались никем, кроме меня, странно...

Я категорически не согласен, что jsf добавляет что-либо. Это только добавляет накладные расходы. Делать ui вещи на сервере-это самая смешная вещь, которую я когда-либо слышал. И javascript в больших командах отлично работает - его называют повторным использованием кода.

просто оберните jquery в некоторые теги jsp, это все, что вам нужно, и вы сделали, и не терпите.кандалы и проблемы масштабируемости.jsf и richfaces.

преимущества использования JSF заключаются не только в создании xhtml + css + js. Иногда JSF накладывает ограничение на разметку, которую вы можете создать, как и любой компонент на основе платформы. Но JSF не только для этого, его жизненный цикл очень помогает. После проверки ввода он может обновить модель и синхронизировать ваши серверные компоненты без каких-либо усилий. вы просто говорите: "независимо от того, что пользователь вводит здесь, проверьте, является ли это число, если да, то сохраните его в свойстве YY в объекте XX", и JSF сделает все что.

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

работая с JSF, Spring MVC, Struts, Grails, JQuery и ExtJS, я считаю, что Grails + ExtJS-это одна мощная комбинация.

Я бы выбрал Grails над JSF в любой день. Мне нравится полнота ExtJS в качестве клиентской платформы и библиотеки, но она поставляется с более крутой кривой обучения, чем JQuery.

вот самые большие различия между jQuery & JSF:

  • нет архитектуры MVC
  • нет контроля состояния (дата хранения в сеансе или разговоре, автоматическая очистка и т. д.)
  • no (по умолчанию) библиотека проверки
  • нет шаблонов библиотека
  • нет расширенной навигации / маршрутизации
  • на стороне клиента

jQuery никогда не предназначался для использования в качестве полного стека webframework. Он был больше предназначен для замены низкоуровневый JS-код, так что написание JS становится проще и мощнее в меньшем количестве строк кода.

и поэтому он должен в основном использоваться для добавления поведения на HTML-элементы.

используя ExtJS framework для большого веб-приложения, я знаю, как легко его использовать. ExtJS (Schena) лучше всего подходит для взаимодействия с базами данных (Oracle 11g) в архитектуре MVC. Представление было для визуальных / пользовательских взаимодействий. Контроллер определил "обработку" и триггеры, которые необходимо использовать, формируют пакеты PLSQL (API для CRUD, SQL select queries и т. д.). Модель и файлы хранилища были использованы для "сопоставления" элементов данных с Вьюером / входами.

ExtJS не подходит для не интенсивных веб - интерфейсов базы данных-где угловой JS может быть лучше подходит.

Comments

    Ничего не найдено.