JavaServer Faces — это технология создания веб-приложений, на основе визуальных компонент. Она является одним из стандартов среди технологий J2EE. Главной отличительной особенностью от других существующих технологий построения веб-приложений на языке Java является то, что в JSF все строится на так называемых визуальных компонентах, которые принимают вводимые данные от пользователя, передавая их в код приложения, а также выводят данные приложения в определенной форме. На самом деле JSF — это больше, чем набор компонент и API для управления ими.
Во-первых, JSF — это спецификация. На данный момент активно дорабатывается версия 2.0 и, если я правильно все понял, то уже в J2EE 6 она появится. До этой версии стандартной была версия 1.2, которую использовать было сложно без применения дополнительных библиотек, таких как Facelets, PrettyFaces, RichFaces или другие AJAX библиотеки. Популярной реализацией JSF спецификации является Project Mojarra. Также существует реализация от Apache, которая называется MyFaces.
Во-вторых, JSF — это полноценный фреймворк, на базе которого можно создавать веб-приложения. Кроме визуальных компонент, существует настраиваемая система навигации между страницами, контейнер бинов (managed beans с инжекцией зависимостей), обработка событий, поддержка EL-языка, управление состояниями компонент и приложения. И, наверное, не менее важное то, что JSF позволяет изменять и расширять свою функциональность, имея стандартизированный API.
JSF я начал изучать сам в далеком 2007 года. Я открыл обычный J2EE туториал и внимательно перечитал раздел, связанный с JSF. Я считаю, что невозможно выучить какую-либо технологию, не создав чего-либо с ее помощью. Поэтому, я создал небольшое серверное приложение GTalkWap, которое позволяло заходить на веб-странички с помощью мобильного телефона с поддержкой WAP и общаться в сети GoogleTalk. У меня тогда был очень слабенький мобильный телефон, Java-приложения на нем не запускались, и поэтому общение таким образом меня очень даже радовало. Запустив это приложение на университетском сервере, я им активно пользовался.
Позже я узнал про существование замечательной технологии Facelets, которая позволила избавиться от использования JSP страниц, а отображение определять в XHTML. Также она позволила использовать шаблоны страниц, которые мне понравились больше, чем те, что были тогда в библиотеке Tiles от Apache. С самого начала изучения JSF я знал про существование различных библиотек визуальных компонент. Но как только я начал использовать RichFaces от JBoss, JSF завоевал мое сердце.
Рассказывая студентам на лекциях о JSF, я старался покрыть как можно больше материала, не вдаваясь в сложные технические подробности. Сравнивать им было не с чем, так как до этого они знали только JSP, поэтому JSF для них был новой технологией. И чтобы не отбить интерес, я заострял внимание на основных фишках, которые упрощали создание веб-приложений, оставляя детали на самостоятельное изучение. Также отдельно я останавливался на интеграции Spring и JSF, так как весь проект был построен на основе Spring. Специально для студентов я создал приложение-пример ExampleTPPS, в котором отразил использование таких технологий, как Spring, JPA, Hibernate, AspectJ, JSF, Facelets, RichFaces, Log4J, Ant, JUnit.
Кстати, на счет самостоятельного изучения JSF, то могу порекомендовать вот этот небольшой туториал на русском языке от IBM, а также книгу Facelets Essentials: Guide to JavaServer Faces View Definition Framework (попробовать скачать можно тут), ну и, конечно, собственные лекции, которые идут ниже. :)
Update: Ниже выкладываю ссылки на слайды лекций, чтобы Вы их смогли скачать и использовать в своей практике.
Лекция 14, Лекция 15, Лекция 16, Лекция 17, Лекция 18, Лекция 19, Лекция 20
Во-первых, JSF — это спецификация. На данный момент активно дорабатывается версия 2.0 и, если я правильно все понял, то уже в J2EE 6 она появится. До этой версии стандартной была версия 1.2, которую использовать было сложно без применения дополнительных библиотек, таких как Facelets, PrettyFaces, RichFaces или другие AJAX библиотеки. Популярной реализацией JSF спецификации является Project Mojarra. Также существует реализация от Apache, которая называется MyFaces.
Во-вторых, JSF — это полноценный фреймворк, на базе которого можно создавать веб-приложения. Кроме визуальных компонент, существует настраиваемая система навигации между страницами, контейнер бинов (managed beans с инжекцией зависимостей), обработка событий, поддержка EL-языка, управление состояниями компонент и приложения. И, наверное, не менее важное то, что JSF позволяет изменять и расширять свою функциональность, имея стандартизированный API.
JSF я начал изучать сам в далеком 2007 года. Я открыл обычный J2EE туториал и внимательно перечитал раздел, связанный с JSF. Я считаю, что невозможно выучить какую-либо технологию, не создав чего-либо с ее помощью. Поэтому, я создал небольшое серверное приложение GTalkWap, которое позволяло заходить на веб-странички с помощью мобильного телефона с поддержкой WAP и общаться в сети GoogleTalk. У меня тогда был очень слабенький мобильный телефон, Java-приложения на нем не запускались, и поэтому общение таким образом меня очень даже радовало. Запустив это приложение на университетском сервере, я им активно пользовался.
Позже я узнал про существование замечательной технологии Facelets, которая позволила избавиться от использования JSP страниц, а отображение определять в XHTML. Также она позволила использовать шаблоны страниц, которые мне понравились больше, чем те, что были тогда в библиотеке Tiles от Apache. С самого начала изучения JSF я знал про существование различных библиотек визуальных компонент. Но как только я начал использовать RichFaces от JBoss, JSF завоевал мое сердце.
Рассказывая студентам на лекциях о JSF, я старался покрыть как можно больше материала, не вдаваясь в сложные технические подробности. Сравнивать им было не с чем, так как до этого они знали только JSP, поэтому JSF для них был новой технологией. И чтобы не отбить интерес, я заострял внимание на основных фишках, которые упрощали создание веб-приложений, оставляя детали на самостоятельное изучение. Также отдельно я останавливался на интеграции Spring и JSF, так как весь проект был построен на основе Spring. Специально для студентов я создал приложение-пример ExampleTPPS, в котором отразил использование таких технологий, как Spring, JPA, Hibernate, AspectJ, JSF, Facelets, RichFaces, Log4J, Ant, JUnit.
Кстати, на счет самостоятельного изучения JSF, то могу порекомендовать вот этот небольшой туториал на русском языке от IBM, а также книгу Facelets Essentials: Guide to JavaServer Faces View Definition Framework (попробовать скачать можно тут), ну и, конечно, собственные лекции, которые идут ниже. :)
Update: Ниже выкладываю ссылки на слайды лекций, чтобы Вы их смогли скачать и использовать в своей практике.
Лекция 14, Лекция 15, Лекция 16, Лекция 17, Лекция 18, Лекция 19, Лекция 20