Java Server Faces (JSF) - PowerPoint PPT Presentation

About This Presentation
Title:

Java Server Faces (JSF)

Description:

Java Server Faces (JSF) przygotowa Micha S apa Plan prezentacji Historia i konkurencje Czym jest JSF JSF- Idea i architektura Budowanie aplikacji JSF ... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 30
Provided by: Swa102
Category:
Tags: jsf | faces | java | server

less

Transcript and Presenter's Notes

Title: Java Server Faces (JSF)


1
Java Server Faces (JSF)
  • przygotowal
  • Michal Slapa

2
Plan prezentacji
  • Historia i konkurencje
  • Czym jest JSF
  • JSF- Idea i architektura
  • Budowanie aplikacji JSF
  • Podsumowanie

3
Kontekst
  • JSP- JSF korzysta z JSP i jest jej rozwinieciem.
  • JSTL- Na stronach JSF mozemy korzystac z
    komponentów JavaServer Pages Standard Tag
    Library.
  • Struts- JSF jest w stanie zastapic Struts, moze
    byc stosowany w polaczeniu z nim, wykorzystujac
    go jako warstwe kontrolera.
  • Swing- JSF ma byc odpowiednikiem Swing, dla
    sieciowego GUI HTML?
  • Microsoft .Net i WebForms- konkurencja.

4
Od Servletu do JSF
  • Servlety- kod HTML w klasach Javy.
  • Poczatki JSP- kod Java w stronie HTML.
  • Nie ma podzialu na logike biznesowa i warstwe
    prezentacji.
  • Malo czytelny kod.
  • Struts
  • Wprowadzenie modelu MVC
  • Biblioteki znaczników, poprawiajace czytelnosc i
    modularnosc kodu JSP.
  • JSTL, JSP 2.0
  • Wprowadzenie kompletnego, mocniejszego zbioru
    znaczników
  • Wprowadzenie Expression Language
  • Mozliwosc latwiejszego definiowania wlasnych
    znaczników

5
Kalendarium JSF
  • Wrzesien 2002- wydanie wczesnej specyfikacji JSF
  • Grudzien 2003- propozycja ostatecznej wersji
    specyfikacji JSF
  • Marzec 2004- ostateczna wersja 1.0 specyfikacji
    JSF
  • Marzec 2004- J2EE 1.4 SDK wspiera JSF
  • Maj 2004- JSF 1.1
  • Grudzien 2004- JSF 1.2
  • Marzec 2005- MyFaces- pierwsza Open Source
    implementacja JSF

6
JSF- Co to jest?
  • Zrab aplikacji Java do tworzenia interfaceu
    uzytkownika dla aplikacji sieciowych.
  • Obsluguje cykl zycia aplikacji internetowej za
    posrednictwem servletu kontrolera.
  • Udostepnia zbiór komponentów do budowy warstwy
    widoku aplikacji, umozliwia obsluge zdarzen
    uzytkownika.

7
Specyfikacja JSFwymagania
  • Stworzenie zrebu dla standardowych elementów GUI
    które moga byc edytowane przez zewnetrzne
    aplikacje.
  • Stworzyc zbiór prostych, bazowych klas Java dla
    obiektów GUI, ich stanów oraz zdarzen
    uzytkownika. Klasy te maja byc odpowiedzialne za
    cykl zycia obiektów GUI, w szczególnosci ich
    staly stan w calym zyciu strony.
  • Podanie zbioru typowych elementów GUI,
    zawierajacego równiez standardowe obiekty
    formularzy HTML.
  • Stworzenie modelu JavaBeans do przesylania
    zdarzen pomiedzy kontrola GUI po stronie klienta,
    a zachowaniem aplikacji po stronie serwera.
  • Stworzenie API do walidacji, równiez wspomaganie
    dla walidacji po stronie klienta.
  • Specyfikacja modelu dla internacjonalizacji GUI.
  • Automatyczna generacja odpowiedzi dla docelowego
    klienta, bioraca pod uwage wszystkie mozliwe dane
    konfiguracyjne (wersja przegladarki klienta).
  • Automatyczna generacja strony zawierajaca
    wymagane zaczepy dla obslugiwanych dostepnosci,
    tak jak zostalo to zdefiniowane w WAI (Web
    Accessibility Initiative).

8
Architektura JSF
  • Glównymi skladnikami JSF sa
  • API sluzace do
  • Reprezentacja komponentów UI i obsluga ich stanów
  • Obsluga zdarzen
  • Walidacja po stronie serwera
  • Konwersja danych HTML-gtJava
  • Definiowanie nawigacji strony
  • Obsluga wielojezycznosci aplikacji i dostepnosci
  • Rozszerzenie podstawowych funkcjonalnosci JSF
    (nowe komponenty, walidatory)

9
Architektura JSF
  • Glównymi skladnikami JSF sa
  • Dwie biblioteki tagów JSP
  • Tworzenie komponentów UI na stronach JSP.
  • Dowiazywanie komponentów do obiektów Java po
    stronie serwera.

10
Architektura JSF
  • Obsluga zadania HTTP

Zródlo http//java.sun.com/j2ee/1.4/docs/tutorial
/doc
11
Czemu JSF?
  • Prostota wytwarzania aplikacji.
  • Mozliwosc zastosowania zewnetrznych edytorów GUI.
  • Wyrazne oddzielenie warstwy zachowania i
    prezentacji. Sprzyja to takze podzialowi zespolu
    ja tworzacego
  • Uniwersalnosc... Mozliwosc tworzenia wyniku w
    róznych jezykach znakowania tekstu.

12
Czemu JSF?
Zródlo Prezentacja Poznan Java User Group na
temat JSF. Michal Malecki. Dalsze pochodzenie
nieznane.
13
Skladniki aplikacji JSF
  • Typowe dla aplikacji sieciowej java
  • Komponenty JavaBeans zawierajace funkcjonalnosci
    i dane aplikacji
  • Obiekty Event listeners
  • Strony, takze strony JSP
  • Klasy pomocnicze
  • Elementy charakterystyczne dla aplikacji JSF
  • Biblioteka znaczników dla komponentów uzytkownika
  • Biblioteka znaczników dla Event handlers,
    walidatorów i innych akcji
  • Backing Beans czyli definicje powiazan obiektów
    aplikacji i komponentów
  • Komponenty UI bedace posiadajacymi stany
    obiektami po stronie serwera
  • Walidatory, konwertery, event listeners, event
    handlers
  • Obiekt konfiguracji aplikacji

14
Aplikacja JSF
  • Etapy przetwarzania zadan

Zródlo http//java.sun.com/j2ee/1.4/docs/tutorial
/doc
15
Warstwa Widoku
  • Oparta na JSP.
  • Do wyswietlania potrzebna jest implementacja JSF
    (View Handler). Aktualnie istnieje kilka
    komercyjnych implementacji (Oracle), oraz jedna,
    bardzo mloda i podobno niedojrzala implementacja
    Open Source (Apache MyFaces).
  • Dzieki korzystaniu z róznych implementacji JSF
    mozna generowac wynik w róznych jezykach.

16
Warstwa Widoku
  • Istnieja dwie podstawowe biblioteki znaczników
    JSP. Core(f) i Html(h).

17
Komponenty
  • Zadania komponentów
  • Wyswietlanie
  • Przez sam komponent(renderesSelf())
  • Poprzez wydelegowanie renderera(getRendererType())
  • Obsluga zdarzen
  • Bezposrednio przez komponent
  • Poprzez event handler
  • Walidacja danych
  • Za posrednictwem zbioru walidatorów zwiazanych z
    komponentem

18
Komponenty
Zródlo http//www.javaworld.com/javaworld/jw-12-2
002/jw-1227-jsf2.html
19
Wiazanie obiektów z widokiemIoC- Tworzenie
ziarenek
  • ltmanaged-beangt
  • ltmanaged-bean-namegtmynumberlt/managed-bean-namegt
  • ltmanaged-bean-classgt
  • mylib.net.MyNumber
  • lt/managed-bean-classgt
  • ltmanaged-bean-scopegtsessionlt/managed-bean-scopegt
  • ltmanaged-propertygt
  • ltproperty-namegtminimumlt/property-namegt
  • ltproperty-classgtlonglt/property-classgt
  • ltvaluegt0lt/valuegt
  • lt/managed-propertygt
  • lt/managed-beangt

20
Wiazanie obiektów z widokiemExpression
Language(EL)
  • Jego zadaniem jest laczenie obiektów Java Beans z
    kodem JSP.
  • Wiazanie z polem obiektu
  • lthinputText value"myNumber.divisor" /gt
  • Wiazanie z metoda (dla atrybutów action,
    actionListener, validator, valueChangeListener)
  • lthinputText id"userNo"   value"UserNumberBean
    .userNumber"   validator"UserNumberBean.valida
    te" /gt
  • Obsluga nawigacji i zdarzen poprzez wiazanie z
    metodami
  • lthcommandLink actionListener"myNumber.changed
    "gt
  • lthcommandLink action"myNavigator.nextSite"gt

21
Definiowanie Nawigacji
  • W pliku konfiguracji
  • 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
  • W kodzie JSP dokonujemy nawigacji przez
    actionsuccess
  • Opcjonalnie za pomoca dowiazanych metod
    (actionfoo.method).
  • Fasolka foo ma w przykladzie metode method o
    interface
  • public String method()

22
Obsluga zdarzen
  • Dwa podstawowe sposoby
  • Implementacja interface Listener i uzycie
    znacznika fvalueChangeListner, lub
    factionListner
  • Implementacja metody w ziarenku Java. Odwolanie
    do niej przez atrybut komponentu.
  • Zdarzenia
  • Action- nawigacja. (przyciski i hiperlacza)
  • Value-change- zmiana wartosci pola.
  • Data-model- i inne...
  • Phase- wywolywane w odpowiedniej fazie
    przetwarzania (nie czytalem obszerniejszej
    dokumentacji).

23
Walidacja
  • Jedynie po stronie serwera.
  • Przy uzyciu standardowych walidatorów
  • W kodzie JSP
  • Przy uzyciu walidatorów uzytkownika
    (implementujacych interface validator)
  • Poprzez wskazanie klasy w znaczniku
    facesValidator
  • Poprzez deklaracje wlasnego znacznika w
    konfiguracji

24
Walidacja
  • Deklaracja wlasnego walidatora
  • ltvalidatorgt
  •   ...
  •   ltvalidator-idgtFormatValidatorlt/validator-idgt
  •   ltvalidator-classgtvalidators.FormatValidatorlt/va
    lidator-classgt
  •   ltattributegt
  •     ...
  •     ltattribute-namegtformatPatternslt/attribute-nam
    egt
  •     ltattribute-classgtjava.lang.Stringlt/attribute-
    classgt
  •   lt/attributegt
  • lt/validatorgt

25
Konwertery
  • Standardowe konwertery
  • Podanie atrybutu converter dla pola.
  • Mozliwosc definiowania konwerterów uzytkownika
  • Deklaracja w konfiguracji
  • Implementacja interface Converter

26
Zalety
  • Bardzo prosta i szybka obsluga wielu aspektów
    tworzenia strony- zdarzenia, wiazanie obiektów
    Java.
  • Zrzucenie odpowiedzialnosci za biblioteki
    komponentów ma poszczególne implementacje.
  • Uniwersalnosc generowanego jezyka znakowania.
  • Mozliwosc uzycia zewnetrznych edytorów GUI.
  • Podzial aplikacji JSF wspiera podzial pracy przy
    projekcie.

27
Wady
  • Mloda, niesprawdzona technologia.
  • Wciaz ubogie srodowisko tworzace w JSF.
  • Kolejna technologia do opanowania.
  • ?

28
Gdzie szukac?
  • Strona JSF
  • http//java.sun.com/j2ee/javaserverfaces
  • Materialy o JSF
  • http//www.jsfcentral.com
  • Krótka prezentacja opatrzona komentarzami
  • http//www.jug.poznan.pl/Spotkania/jsf
  • Implementacja JSF
  • http//incubator.apache.org/myfaces

29
Dziekujeza uwage
Write a Comment
User Comments (0)
About PowerShow.com