Saint Petersburg, 2012 Java Lecture #11 Java Server Faces 2.

Презентация:



Advertisements
Похожие презентации
Java Server Pages(JSP). JavaServer Pages (JSP) позволяют вам отделить динамическую часть ваших страниц от статического HTML. Вы, как обычно, пишете обычный.
Advertisements

Java Server Faces (JSF). JSF Architecture Model-View-Controller.
Saint Petersburg, 2012 Java Lecture 12 JSTL. JSP -> JSTL JSP – хорошо Что делать если хотим добавить условие? Итерирование по списку и вывод каждого элемента.
Work with server by XMLRPC – library in Java For students Author: Dudnik Oxana.
© 2005 Cisco Systems, Inc. All rights reserved. IPTX v Configuring Additional Cisco CallManager Express Features Configuring Cisco CallManager Express.
PageDesigner Introduction Sybase, Inc.. Features WYSIWYG web page editor for HTML/CSS/JSP/JSF pages Full HTML4.0, CSS2 support Design, Source and preview.
Evgeniy Krivosheev Andrey Stukalenko Vyacheslav Yakovenko Last update: Nov, 2013 Spring Framework Module 1 - Introduction.
© 2006 Cisco Systems, Inc. All rights reserved.SND v Building Cisco IPsec VPNs Building Remote Access VPNs.
Eclipse Web Tools Platform Project © 2005 IBM Corporation Developing Web Services with Eclipse – Programming Examples Arthur Ryman IBM Rational
Copyright 2003 CCNA 3 Chapter 10 Virtual Trunking Protocol By Your Name.
© 2001, Cisco Systems, Inc. CSIDS Chapter 9 Signature and Intrusion Detection Configuration.
Разработчици Кемпински Хотел Зографски София. Разработчици 28 Юни 2012 г.2 Веселин Георгиев, SharePoint &.NET Developer Мартин Караиванов, SharePoint.
© 2006 IBM Corporation Made available under the EPL v WebSphere Services Technical Conference world class skill building and technical enablement.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
WS18-1 WORKSHOP 18 MODAL TRANSIENT ANALYSIS OF THE TOWER MODEL WITH SEISMIC INPUT NAS122, Workshop 18, August 2005 Copyright 2005 MSC.Software Corporation.
© 2006 Cisco Systems, Inc. All rights reserved. ICND v Managing IP Traffic with ACLs Introducing ACLs.
OpenEdge ® GUI for.NET Modernize your user interface with ABL Shelley Chase OpenEdge Architect Progress Software Corporation Session 113.
© 2006 by IBM and Oracle; made available under the EPL v1.0 | Santa Clara | Mar. 23, 2006 Arthur Ryman, WTP PMC, IBM Rational Software Raghu Srinivasan,
© 2006 Cisco Systems, Inc. All rights reserved. SND v Securing Networks with Cisco IOS IPS Configuring Cisco IOS IPS.
Page 1 Information Systems Infrastructure: Foundations and Trends Week 3 Lecture Write your answers to these 8 review questions 2. Name some of Googles.
Транксрипт:

Saint Petersburg, 2012 Java Lecture #11 Java Server Faces 2

Why Web apps? Недостатки браузерных приложений Преимущества web-приложений 2

What is JSF? Компонентно-ориентированный UI-framework Клиент-серверная технология Часть стандартной Java EE платформы Разработан: 3

For what JSF is? Многочисленные готовые HTML-ориентированные GUI-объекты + способы управления ими MVC-framework для построения HTML-форм, валидации их значений, вызова бизнес-логики и изображения Обеспечивает easy-to-use поддержку Ajax 4

Why JSF? MVC паттерн Легкое разделение ролей при разработке Встроенные UI-компоненты (в отличие от JSP и Servlet) Событийная модель взаимодействий (по сравнению со старой request/response моделью) Сохранения состояние компонента Платформенная независимость Поддержка поставщиков 5

JSF Architecture : MVC ModelViewController 6

JSF Architecture JavaBeans Объявление в faces-config.xml или с помощью аннотаций Взаимодействие с UI посредством EL Обновление пропертей/вызов методов автоматически FacesServlet Поставляется провайдером Управляет всеми requestами Для навигации используются правила (faces-config.xml) 7

JSF Architecture JSF Pages Facelets Быстрое создание компонентов/тэгов используя XML Шаблоны Время на разработку и deployment.xhtml 8 JSP Быстрое создание компонентов/тэгов используя XML Последовательная обработка от начала.jsp

JSF Components Main components of JSF UI components Render Validator Backing beans Converter Events and event listeners Messages Navigation 9

JSF Components 10

Request processing lifecycle 11

Code basics Development steps Разработать модель для хранения данных Добавить эти объявления в faces-config.xml Создать страницы c ui компонентами Задать навигацию в faces-config.xml Сконфигурировать web.xml 12

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 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

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

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

JSF event handler example 17 Two implementations: Method binding JSF Java public class ValueListenerXXX implements public void processValueChange(ValueChangeEvent event) throws AbortProcessingException { //... }

JSF messages example 18 JSF page Enter your username :

JSF Navigation JSF navigation model Управление правилами в faces-config.xml Возможность указывать эту информацию в классе 19 Example

Beans life SessionScoped import public class UserBean implements Serializable {...} RequestScoped ViewScoped 20

External libraries 21

JSF usage 22

JSF +/- 23 Большое число имплементаций Oracle, IBM, Jboss… Отсутствие валидации на стороне клиента Позволяет создавать компоненты, которые затем часто используются + множество компонентов от провайдеров Вынуждены менять стандартные компоненты + отсутствие готовой сложной валидации В отличие от Struts удобная имплементация валидаторов и конвертеров, которые описываются рядом с компонентом Различные имплементации Ajax в разных браузерах Хорошо спроектированные ActionListener + Ajax поддержка Перегруженный client-server

Alternatives Обычные веб-приложения Servlets/JSP Struts JSF 2 Ajax-based веб-приложения Добавить js-framework к приложению Google Web Toolkit + Java JSF 2 24

JSF vs Servlets/JSP (advantages) JSF позволяет создавать HTML-формы со сложными интерфейсами Удобный event handling Managed beans (JSP: jsp:setProperty) Встроенная AJAX-поддержка Полноценная система шаблонов 25

JSF vs Servlets/JSP (disadvantages) Для JSP необходимо знать в дополнение Servlets API, в случае с JSF добавляются сложные и большие фруймворки. Меньше ресурсов по JSF JSF сложнее понимать и оптимизировать 26

JSF vs Struts (advantages) С помощью JSF возможно комбинировать различные GUI элементы в один компонент. Много имплементаций Не ограничен HTML и HTTP Доступ к бину по имени Expression Language Проще определения контроллера и бина 27

JSF vs Struts (disadvantages) Не ограничен HTML и HTTP JSF:.xhtml,.faces,.jsp. Сложно защитить.xhtml. Сложно редиректить на не faces страницы в faces-config.xml Небольшое количество валидаторов Отсутствие валидации на клиенте. 28

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

References