Java Server Faces - PowerPoint PPT Presentation

About This Presentation
Title:

Java Server Faces

Description:

Java Server Faces Tomasz Nowak Konspekt Historia Wst p Architektura JSF Sk adniki aplikacji JSF Historia 1. Serwlety 2. JSP 3. Struts Wst p Projekt Sun ... – PowerPoint PPT presentation

Number of Views:157
Avg rating:3.0/5.0
Slides: 29
Provided by: comp1341
Category:
Tags: faces | java | server | servlet

less

Transcript and Presenter's Notes

Title: Java Server Faces


1
Java Server Faces
  • Tomasz Nowak

2
Konspekt
  1. Historia
  2. Wstep
  3. Architektura JSF
  4. Skladniki aplikacji JSF

3
Historia
  • 1. Serwlety
  • 2. JSP
  • 3. Struts

4
Wstep
  • Projekt Sun Microsystems
  • JSF - specyfikacja
  • JSF 1.0 (2004-03-11)
  • JSF 1.2 (2006-05-11)
  • Polaczenie Struts i Swinga

5
Architektura JSF
  • API do reprezentacji komponentów, zarzadzania
    stanem, obslugi zdarzen i walidacji
  • Biblioteki znaczników do opisu interfejsu
    uzytkownika

6
Skladniki aplikacji JSF
  • Backing Beans
  • Strony JSP
  • Komponenety UI
  • Pomocnicze klasy po stronie serwera
  • Walidatory, obsluga zdarzen oraz obsluga
    nawigacji
  • Plik konfiguracji zasobów

7
Przyklad greeting.jsp

8
Przyklad greeting.jsp

9
Przyklad response.jsp

10
Kontroler JSF
ltservletgt ltservlet-namegtFacesServletlt/servlet-namegt ltservlet-classgtjavax.faces.webapp.FacesServletlt/servlet-classgt lt/servletgt ltservlet-mappinggt ltservlet-namegtFacesServletlt/servlet-namegt lturl-patterngt/guess/lt/url-patterngt lt/servlet-mappinggt
  • Serwlet FacesServlet pelni funkcje kontrolera
  • Pojedynczy punkt wejscia do aplikacji (web.xml)
  • Konfiguracja poprzez plik faces-config.xml

11
Backing Bean
  • Spelnia reguly JavaBeans
  • Wlasciwosci i metody zwiazane z komponentami
    uzytkownika
  • Dodatkowo
  • - walidacja
  • - obsluga zdarzen
  • - nawigacja

12
Backing Bean
  • public class UserNumberBean
  • Integer randomInt null
  • Integer userNumber null
  • String response null
  • private long maximum 0
  • private long minimum 0
  • public UserNumberBean()
  • public String getResponse()

13
Managed-bean (faces-config.xml)
ltmanaged-beangt    ltmanaged-bean-namegt UserNumberBean lt/managed-bean-namegt ltmanaged-bean-classgt      guessNumber.UserNumberBean lt/managed-bean-classgt    ltmanaged-bean-scopegt session lt/managed-bean-scopegt   ltmanaged-propertygt     ltproperty-namegtminimumlt/property-namegt     ltproperty-classgtlonglt/property-classgt ltvaluegt0lt/valuegt lt/managed-propertygt
14
Strona JSF
  •   ltHTML xmlns"http//www.w3.org/1999/xhtml"xmlla
    ng"en"gt  
  • ltHEADgt lttitlegtHellolt/titlegt lt/HEADgt  
  • lt_at_ page contentType"application/xhtmlxml" gt
  • lt_at_ taglib uri"http//java.sun.com/jsf/html"
    prefix"h" gt
  •   lt_at_ taglib uri"http.//java.sun.com/jsf/core
    " prefix"f" gt
  • ltbodygt
  • ltfviewgt   
  • lthform id"helloForm1"gt
  •  
  • lt/hformgt
  • lt/fviewgt
  • lt/bodygt
  • lt/HTMLgt

15
Strona JSF - omowienie
  • lth2gt
  • Hi. My name is Lock. I'm thinking of a number
  • from lthoutputText value"UserNumberBean.minimum
    "/gt
  • to lthoutputText value"UserNumberBean.maxim
    um"/gt.
  • Can you guess it?
  • lt/h2gt

16
Strona JSF - omówienie
  • lthinputText
  • id"userNo"
  • value"UserNumberBean.userNumber"
  • converterMessage"ErrMsg.userNoConvert"gt
  • ltfvalidateLongRange
  • minimum"UserNumberBean.minimum"
    maximum"UserNumberBean.maximum" /gt
  • lt/hinputTextgt
  • lthcommandButton id"submit" action"success"
    value"Submit" /gt
  • lthmessage id"errors1" for"userNo"/gt

17
Walidacja
  • Walidacja w metodzie BackingBeana
  • Niejawna walidacja automatyczna (atrybutu
    REQUIRED)
  • Predefiniowane walidatory ( fvalidateLength,
    fvalidateDoubleRange, fvalidateLongRange)
  • Wlasne walidatory (implementujace interfejs
    Validator, rejestrowane w faces-config.xml)

18
Komunikaty o bledzie
  • Pliki .properties
  • ApplicationMessages.properties
  • userNoConvertThe value you entered is not a
    number.

19
Komunikaty o bledzie (faces-config)
  • ltapplicationgt
  • ltresource-bundlegt
  • ltbase-namegt
  • guessNumber.ApplicationMessages
  • lt/base-namegt
  • ltvargtErrMsglt/vargt
  • lt/resource-bundlegt
  • lt/applicationgt

20
Komunikaty o bledzie
  • lthinputText
  • id"userNo"
  • label"User Number"
  • value"UserNumberBean.userNumber"
  • converterMessage"ErrMsg.userNoConvert"gt
  • ...
  • lt/hinputTextgt

21
Nawigacja
  • faces-config.xml
  • ltnavigation-rulegt
  • ltfrom-view-idgt/greeting.jsplt/from-view-idgt
  • ltnavigation-casegt
  • ltfrom-outcomegtsuccesslt/from-outcomegt
  • ltto-view-idgt/response.jsplt/to-view-idgt
  • lt/navigation-casegt
  • lt/navigation-rulegt
  • greeting.jsp
  • lthcommandButton
  • id"submit"
  • action"success" /gt

22
response.jsp
  • response.jsp
  • lthoutputText
  • id"result"
  • value"UserNumberBean.response"/gt
  • UserNumberBean.java
  • public String getResponse()
  • if ((userNumber ! null)
    (userNumber.compareTo(randomInt) 0))
  • return "Yay! You got it!"
  • else
  • return "Sorry, " userNumber " is
    incorrect."

23
Procedury obslugi zdarzen
  • ActionListener
  • ValueChangeListener

24
ActionListener
  • lthcommandButton actionListenerbean.sideEffect
  • Immediatetrue/gt
  • public void sideEffect(ActionEvent event)
  • //np. aktywacja/deaktywacja innych
  • //elementów formularza

25
ValueChangeListener
  • lthcommandButton valueZaloguj
    disabledtrue/gt
  • lthselectBooleanCheckbox bindingloginBean.sele
    ctBooleanCheckbox1
  • idselectBooleanCheckbox
  • valueChangeListenerloginBean.checkbox1Changed
  • onchangesubmit()/gt
  • Public void checkbox1Changed(ValueChangeEvent
    valueChangeEvent)
  • if(selectBooleanCheckbox1.isSelected())
  • commandButton1.setDisabled(false)
  • FacesContext context FacesContext.getCurrentIns
    tance()
  • context.renderResponse()

26
Internacjonalizacja (faces-config)
  • ltapplicationgt
  • ltmessage-bundlegt
  • com.sun.bookstore6.resources.ApplicationMessages
  • lt/message-bundlegt
  • ltresource-bundlegt
  • ltbase-namegt
  • com.sun.bookstore6.resources.CustomMessages
  • lt/base-namegt
  • ltvargtcustomMessageslt/vargt
  • lt/resource-bundlegt
  • ltlocale-configgt
  • ltdefault-localegtenlt/default-localegt
  • ltsupported-localegteslt/supported-localegt
  • ltsupported-localegtdelt/supported-localegt
  • ltsupported-localegtfrlt/supported-localegt
  • lt/locale-configgt
  • lt/applicationgt

27
Internacjonalizacja
  • ltfloadBundle var customMessages /gt
  • String current event.getComponent().getId()
  • FacesContext context FacesContext.getCurrentInsta
    nce()
  • context.getViewRoot()
  • .setLocale((Locale)
    locales.get(current))

28
Zródla
  • http//java.sun.com/javaee/javaserverfaces/ -
    strona domowa
  • http//java.sun.com/javaee/5/docs/tutorial/doc/ind
    ex.html - tutorial
  • http//wazniak.mimuw.edu.pl/index.php?titleAWWW-1
    st3.6-w11.tresc-1.0-toc prezentacja o JSF
Write a Comment
User Comments (0)
About PowerShow.com