Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемВладислава Карпушкина
1 Saint Petersburg, 2012 Java Lecture #11 Java Server Faces 2
2 Why Web apps? Недостатки браузерных приложений Преимущества web-приложений 2
3 What is JSF? Компонентно-ориентированный UI-framework Клиент-серверная технология Часть стандартной Java EE платформы Разработан: 3
4 For what JSF is? Многочисленные готовые HTML-ориентированные GUI-объекты + способы управления ими MVC-framework для построения HTML-форм, валидации их значений, вызова бизнес-логики и изображения Обеспечивает easy-to-use поддержку Ajax 4
5 Why JSF? MVC паттерн Легкое разделение ролей при разработке Встроенные UI-компоненты (в отличие от JSP и Servlet) Событийная модель взаимодействий (по сравнению со старой request/response моделью) Сохранения состояние компонента Платформенная независимость Поддержка поставщиков 5
6 JSF Architecture : MVC ModelViewController 6
7 JSF Architecture JavaBeans Объявление в faces-config.xml или с помощью аннотаций Взаимодействие с UI посредством EL Обновление пропертей/вызов методов автоматически FacesServlet Поставляется провайдером Управляет всеми requestами Для навигации используются правила (faces-config.xml) 7
8 JSF Architecture JSF Pages Facelets Быстрое создание компонентов/тэгов используя XML Шаблоны Время на разработку и deployment.xhtml 8 JSP Быстрое создание компонентов/тэгов используя XML Последовательная обработка от начала.jsp
9 JSF Components Main components of JSF UI components Render Validator Backing beans Converter Events and event listeners Messages Navigation 9
10 JSF Components 10
11 Request processing lifecycle 11
12 Code basics Development steps Разработать модель для хранения данных Добавить эти объявления в faces-config.xml Создать страницы c ui компонентами Задать навигацию в faces-config.xml Сконфигурировать web.xml 12
13 JSF UI Component example: textbox 13 Managed Bean package com.mkyong.form; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; public class UserBean implements Serializable { private String userName; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } View Page – demo.xhtml < html xmlns=" xmlns:h=" JSF 2 textbox example View Page – User.xhtml < html xmlns= xmlns:h=" JSF 2 textbox example Submitted value : JSF 2 textbox example View Page – User.xhtml < html xmlns=http://www.w3.org/1999/xhtmlhttp://www.w3.org/1999/xhtml xmlns:h="http://java.sun.com/jsf/html"> JSF 2 textbox example Submitted value : ">
14 JSF custom validator example Enter your 14 Create a validator class by implementing jav ax.faces.validato r. Validator interfac e Override validate () methods Assign an unique validator ID dator annotation Link your custom validator class to JSF component via f:validator tag
15 JSF custom converter example Enter your bookmark URL : 15 Create a converter class by implementing javax.faces.conv ert.Converter interface Override both getAsObject() and getAsStrin g() methods Assign an unique converter ID rter annotation Link your custom converter class to JSF component via f:converter tag
16 JSF managed bean example Logon pagecode.Logon request 16 Create the Logon.java source class and compile into a Logon.class file Declare the bean in the faces- config.xml Deploy your Logon.class file
17 JSF event handler example 17 Two implementations: Method binding JSF Java public class ValueListenerXXX implements public void processValueChange(ValueChangeEvent event) throws AbortProcessingException { //... }
18 JSF messages example 18 JSF page Enter your username :
19 JSF Navigation JSF navigation model Управление правилами в faces-config.xml Возможность указывать эту информацию в классе 19 Example
20 Beans life SessionScoped import public class UserBean implements Serializable {...} RequestScoped ViewScoped 20
21 External libraries 21
22 JSF usage 22
23 JSF +/- 23 Большое число имплементаций Oracle, IBM, Jboss… Отсутствие валидации на стороне клиента Позволяет создавать компоненты, которые затем часто используются + множество компонентов от провайдеров Вынуждены менять стандартные компоненты + отсутствие готовой сложной валидации В отличие от Struts удобная имплементация валидаторов и конвертеров, которые описываются рядом с компонентом Различные имплементации Ajax в разных браузерах Хорошо спроектированные ActionListener + Ajax поддержка Перегруженный client-server
24 Alternatives Обычные веб-приложения Servlets/JSP Struts JSF 2 Ajax-based веб-приложения Добавить js-framework к приложению Google Web Toolkit + Java JSF 2 24
25 JSF vs Servlets/JSP (advantages) JSF позволяет создавать HTML-формы со сложными интерфейсами Удобный event handling Managed beans (JSP: jsp:setProperty) Встроенная AJAX-поддержка Полноценная система шаблонов 25
26 JSF vs Servlets/JSP (disadvantages) Для JSP необходимо знать в дополнение Servlets API, в случае с JSF добавляются сложные и большие фруймворки. Меньше ресурсов по JSF JSF сложнее понимать и оптимизировать 26
27 JSF vs Struts (advantages) С помощью JSF возможно комбинировать различные GUI элементы в один компонент. Много имплементаций Не ограничен HTML и HTTP Доступ к бину по имени Expression Language Проще определения контроллера и бина 27
28 JSF vs Struts (disadvantages) Не ограничен HTML и HTTP JSF:.xhtml,.faces,.jsp. Сложно защитить.xhtml. Сложно редиректить на не faces страницы в faces-config.xml Небольшое количество валидаторов Отсутствие валидации на клиенте. 28
29 Conclusion JSF Standard Java component-oriented UI framework Clien-server technology Current version: JSF 2.1 (2010) MVC architecture Allows different View technologies (Facelets, JSP, …) Event-based Suggest developer roles Device independent Easy to use 29
30 References
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.