Java Server Faces Tomasz Nowak.

1 Java Server Faces Tomasz Nowak ...
Author: Izolda Bargieł
0 downloads 2 Views

1 Java Server Faces Tomasz Nowak

2 Konspekt Historia Wstęp Architektura JSF Składniki aplikacji JSF

3 Historia 1. Serwlety 2. JSP 3. Struts

4 Wstęp Projekt Sun Microsystems JSF - specyfikacja JSF 1.0 (2004-03-11)Połączenie Struts i Swinga

5 Architektura JSF API do reprezentacji komponentów, zarządzania stanem, obsługi zdarzeń i walidacji Biblioteki znaczników do opisu interfejsu użytkownika

6 Składniki aplikacji JSFBacking Beans Strony JSP Komponenety UI Pomocnicze klasy po stronie serwera Walidatory, obsługa zdarzeń oraz obsługa nawigacji Plik konfiguracji zasobów

7 Przykład – greeting.jsp

8 Przykład – greeting.jsp

9 Przykład – response.jsp

10 Kontroler JSF Serwlet FacesServlet pełni funkcję kontroleraFacesServlet javax.faces.webapp.FacesServlet /guess/* Serwlet FacesServlet pełni funkcję kontrolera Pojedynczy punkt wejścia do aplikacji (web.xml) Konfiguracja poprzez plik faces-config.xml

11 Backing Bean Spełnia reguły JavaBeansWłaściwości i metody związane z komponentami użytkownika Dodatkowo: - walidacja - obsługa zdarzeń - 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) UserNumberBean      guessNumber.UserNumberBean    session       minimum     long 0

14 Strona JSF      Hello    page contentType="application/xhtml+xml" %> taglib uri="http://java.sun.com/jsf/html" prefix="h" %> taglib uri="http:.//java.sun.com/jsf/core" prefix="f" %>     …

15 Strona JSF - omowienie

Hi. My name is Lock. I'm thinking of a number from to . Can you guess it?

16 Strona JSF - omówienie value="#{UserNumberBean.userNumber}" converterMessage="#{ErrMsg.userNoConvert}"> minimum="#{UserNumberBean.minimum}" maximum="#{UserNumberBean.maximum}" />

17 Walidacja Walidacja w metodzie BackingBeanaNiejawna walidacja automatyczna (atrybutu REQUIRED) Predefiniowane walidatory ( f:validateLength, f:validateDoubleRange, f:validateLongRange) Własne walidatory (implementujące interfejs Validator, rejestrowane w faces-config.xml)

18 Komunikaty o błędzie Pliki *.properties ApplicationMessages.propertiesuserNoConvert=The value you entered is not a number.

19 Komunikaty o błędzie (faces-config) guessNumber.ApplicationMessages ErrMsg

20 Komunikaty o błędzie value="#{UserNumberBean.userNumber}" converterMessage="#{ErrMsg.userNoConvert}"> ...

21 Nawigacja faces-config.xml /greeting.jsp success /response.jsp greeting.jsp id="submit" action="success" />

22 response.jsp response.jsp value="#{UserNumberBean.response}"/> 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 obsługi zdarzeńActionListener ValueChangeListener

24 ActionListener Immediate=„true”/> public void sideEffect(ActionEvent event) { //np. aktywacja/deaktywacja innych //elementów formularza

25 ValueChangeListener id=”selectBooleanCheckbox” valueChangeListener=”loginBean.checkbox1Changed}” onchange=”submit()”/> Public void checkbox1Changed(ValueChangeEvent valueChangeEvent) { if(selectBooleanCheckbox1.isSelected()) commandButton1.setDisabled(false); FacesContext context = FacesContext.getCurrentInstance(); context.renderResponse();

26 Internacjonalizacja (faces-config) com.sun.bookstore6.resources.ApplicationMessages com.sun.bookstore6.resources.CustomMessages customMessages en es de fr

27 Internacjonalizacja String current = event.getComponent().getId(); FacesContext context =FacesContext.getCurrentInstance(); context.getViewRoot() .setLocale((Locale) locales.get(current));

28 Źródła http://java.sun.com/javaee/javaserverfaces/ - strona domowa- tutorial – prezentacja o JSF