JavaServer Faces Wydanie II.pdf

(903 KB) Pobierz
JavaServer Faces.
Wydanie II
Autor: David Geary, Cay S. Horstmann
T³umaczenie: Miko³aj Szczepaniak
ISBN: 978-83-246-1354-0
Tytu³ orygina³u:
Core JavaServer Faces (Core Series)
Format: 172x245, stron: 648
Poznaj nowoczesne technologie, aby perfekcyjnie tworzyæ sprawne oprogramowanie!
Jak tworzyæ aplikacje JSF w œrodowisku Eclipse?
Jak korzystaæ z frameworku Boss Seam?
Jak implementowaæ niestandardowe komponenty, konwertery
i mechanizmy weryfikuj¹ce?
JavaServer Faces (JSF) jest obecnie najpopularniejsz¹ technologi¹, która pozwala
na projektowanie interfejsu u¿ytkownika poprzez umieszczenie na formularzu
komponentów i powi¹zanie ich z obiektami Javy bez koniecznoœci mieszania kodu
Ÿród³owego ze znacznikami. Mocn¹ stron¹ JSF jest rozszerzalny model komponentowy,
a tak¿e mo¿liwoœæ wspó³pracy z œrodowiskami do budowy graficznych interfejsów
u¿ytkownika metod¹ przeci¹gnij-i-upuœæ. To nowoczesne narzêdzie oferuje tak¿e
mechanizmy rozwi¹zuj¹ce najtrudniejsze problemy w zakresie nawigacji, zarz¹dzania
po³¹czeniami z us³ugami zewnêtrznymi i konfiguracjami oraz izolowania prezentacji
od logiki biznesowej.
Ksi¹¿ka „JavaServer Faces. Wydanie II” prezentuje gruntownie zaktualizowan¹ wiedzê
dotycz¹c¹ JSF oraz wyczerpuj¹ce omówienia najnowszych udoskonaleñ mechanizmów
wi¹¿¹cych tê technologiê z platform¹ Java EE 5, a tak¿e analizê rozszerzeñ interfejsów
API. Zawiera praktyczne porady i wskazówki, dziêki którym szybko nauczysz siê
technik sterowania przechodzeniem pomiêdzy stronami z wykorzystaniem frameworku
Shale; poznasz sposoby zastêpowania znaczników JSP znacznikami XHTML za pomoc¹
technologii Facelets; do perfekcji opanujesz sztukê rozbudowy tej technologii o w³asne
biblioteki. „Core JavaServer Faces” to doskona³y, usystematyzowany zbiór najlepszych
praktyk budowy oprogramowania, minimalizowania trwale kodowanych elementów
i maksymalizacji produktywnoœci.
Komponenty zarz¹dzane
Zaawansowane techniki nawigacji
Znaczniki i formularze
Konwersja i weryfikacja poprawnoœci danych
Implementacja klas niestandardowych mechanizmów weryfikacji
Powidoki i pakiet Apache Tiles
Niestandardowe komponenty, konwertery i mechanizmy weryfikuj¹ce
Eliminowanie wycieków po³¹czeñ
Uzyskiwanie dostêpu do informacji sk³adowych w katalogach LDAP
Implementacja mechanizmu weryfikacji w czasie rzeczywistym
z wykorzystaniem frameworku Ajax4jsf
Zastosuj nowoczesne technologie JSP, aby w prosty sposób budowaæ zaawansowane
i sprawne aplikacje
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treści
Przedmowa ...............................................................................................................................................11
Rozdział 1. Wprowadzenie .......................................................................................................................15
Dlaczego wybieramy technologię JavaServer Faces? ........................................................ 15
Instalacja oprogramowania ........................................................................................... 16
Prosty przykład ............................................................................................................. 18
Elementy składowe ................................................................................................. 20
Struktura katalogów ................................................................................................ 21
Kompilacja przykładowej aplikacji ............................................................................. 22
Analiza przykładowej aplikacji ........................................................................................ 23
Komponenty ........................................................................................................... 23
Strony technologii JSF ............................................................................................. 24
Nawigacja ............................................................................................................... 27
Konfiguracja serwletu .............................................................................................. 29
Strona powitalna ..................................................................................................... 30
Środowiska
wytwarzania dla JSF .................................................................................... 31
Zintegrowane
środowiska
programowania ................................................................. 31
Narzędzia projektowania wizualnego ......................................................................... 32
Automatyzacja procesu kompilacji za pomocą narzędzia Ant ....................................... 34
Usługi frameworka JSF .................................................................................................. 37
Mechanizmy wewnętrzne ............................................................................................... 39
Wizualizacja stron ................................................................................................... 40
Dekodowanie
żądań
................................................................................................ 41
Cykl
życia
aplikacji JSF ............................................................................................ 42
Rozdział 2. Komponenty zarządzane ...................................................................................................... 45
Definicja komponentu ................................................................................................... 45
Właściwości komponentu ........................................................................................ 47
Wyrażenia reprezentujące wartości ........................................................................... 49
Pakiety komunikatów .................................................................................................... 50
Komunikaty obejmujące zmienne .............................................................................. 51
Konfigurowanie ustawień regionalnych aplikacji ......................................................... 52
Przykładowa aplikacja ................................................................................................... 54
4
JavaServer Faces
Komponenty wspierające .............................................................................................. 60
Zasięg komponentów .................................................................................................... 61
Komponenty obejmujące zasięgiem sesję ................................................................. 61
Komponenty obejmujące zasięgiem aplikację ............................................................ 62
Komponenty obejmujące zasięgiem
żądanie
.............................................................. 62
Adnotacje cyklu
życia
............................................................................................... 63
Konfigurowanie komponentów ....................................................................................... 64
Ustawianie wartości właściwości .............................................................................. 65
Inicjalizacja list i map .............................................................................................. 65
Wiązanie definicji komponentów ............................................................................... 66
Konwersje
łańcuchów
.............................................................................................. 68
Składnia wyrażeń reprezentujących wartości ................................................................... 69
Stosowanie nawiasów kwadratowych ........................................................................ 71
Wyrażenia odwołujące się do map i list ..................................................................... 71
Rozwiązywanie wyrazu początkowego ........................................................................ 72
Wyrażenia złożone ................................................................................................... 74
Wyrażenia odwołujące się do metod ......................................................................... 75
Rozdział 3. Nawigacja ............................................................................................................................. 77
Nawigacja statyczna ..................................................................................................... 77
Nawigacja dynamiczna .................................................................................................. 79
Zaawansowane techniki nawigacji .................................................................................. 88
Przekierowanie ....................................................................................................... 89
Symbole wieloznaczne ............................................................................................. 90
Stosowanie elementu from-action ............................................................................. 91
Algorytm nawigacji ................................................................................................... 92
Rozdział 4. Znaczniki standardowe JSF ................................................................................................ 95
Przegląd podstawowych znaczników JSF ......................................................................... 96
Przegląd znaczników JSF reprezentujących znaczniki HTML (JSF HTML) ............................. 98
Atrybuty wspólne ................................................................................................... 100
Formularze ................................................................................................................. 106
Elementy formularzy i skrypty języka JavaScript ....................................................... 108
Jedno- i wielowierszowe pola tekstowe ......................................................................... 111
Pola ukryte ........................................................................................................... 114
Stosowanie jedno- i wielowierszowych pól tekstowych .............................................. 114
Wyświetlanie tekstu i obrazów ................................................................................ 118
Przyciski i
łącza
.......................................................................................................... 120
Stosowanie przycisków poleceń ............................................................................. 121
Stosowanie
łączy
poleceń ...................................................................................... 126
Znaczniki selekcji ....................................................................................................... 130
Pola wyboru i przyciski opcji ................................................................................... 133
Menu i listy .......................................................................................................... 135
Elementy .............................................................................................................. 138
Komunikaty ............................................................................................................... 154
Panele ....................................................................................................................... 159
Rozdział 5. Tabele danych ......................................................................................................................165
Znacznik tabeli danych — h:dataTable ......................................................................... 165
Prosta tabela ............................................................................................................. 166
Atrybuty znacznika h:dataTable .............................................................................. 169
Atrybuty znacznika h:column .................................................................................. 170
Spis treści
5
Nagłówki, stopki i podpisy ........................................................................................... 171
Komponenty JSF ........................................................................................................ 174
Edycja komórek tabeli ................................................................................................. 177
Style ......................................................................................................................... 180
Style stosowane dla kolumn .................................................................................. 181
Style stosowane dla wierszy .................................................................................. 182
Tabele bazy danych .................................................................................................... 183
Obiekty wyników biblioteki JSTL kontra zbiory wynikowe ............................................ 187
Modele tabel ............................................................................................................. 187
Edycja modeli tabel ............................................................................................... 188
Sortowanie i filtrowanie ......................................................................................... 192
Techniki przewijania ................................................................................................... 201
Przewijanie z użyciem paska przewijania ................................................................. 201
Przewijanie za pomocą dodatkowych
łączy
............................................................... 202
Rozdział 6. Konwersja i weryfikacja poprawności danych ...............................................................205
Przegląd procesu konwersji i weryfikacji poprawności .................................................... 205
Stosowanie konwerterów standardowych ...................................................................... 207
Konwersja liczb i dat ............................................................................................. 207
Błędy konwersji ..................................................................................................... 211
Kompletny przykład konwertera .............................................................................. 216
Stosowanie standardowych mechanizmów weryfikujących .............................................. 218
Weryfikacja długości
łańcuchów
i przedziałów liczbowych .......................................... 219
Weryfikacja wartości wymaganych .......................................................................... 220
Wyświetlanie komunikatów o błędach weryfikacji ..................................................... 221
Pomijanie procesu weryfikacji ................................................................................. 221
Kompletny przykład mechanizmu weryfikacji ............................................................ 223
Programowanie z wykorzystaniem niestandardowych konwerterów
i mechanizmów weryfikujących .................................................................................. 224
Implementacja klas konwerterów niestandardowych ................................................. 225
Implementacja klas niestandardowych mechanizmów weryfikacji .............................. 237
Rejestrowanie własnych mechanizmów weryfikacji ................................................... 240
Weryfikacja danych wejściowych za pomocą metod komponentów JavaBeans ............ 242
Przekazywanie konwerterom atrybutów .................................................................... 242
Relacje weryfikacji
łączące
wiele komponentów ....................................................... 243
Rozdział 7. Obsługa zdarzeń .................................................................................................................249
Zdarzenia cyklu
życia
.................................................................................................. 250
Zdarzenia zmiany wartości .......................................................................................... 251
Zdarzenia akcji ........................................................................................................... 256
Znaczniki metod nasłuchujących zdarzeń ...................................................................... 263
Znaczniki f:actionListener i f:valueChangeListener ................................................... 264
Komponenty bezpośrednie .......................................................................................... 265
Stosowanie bezpośrednich komponentów wejściowych ............................................ 266
Stosowanie bezpośrednich komponentów poleceń ................................................... 268
Przekazywanie danych z interfejsu użytkownika na serwer .............................................. 269
Znacznik f:param .................................................................................................. 270
Znacznik f:attribute ............................................................................................... 271
Znacznik f:setPropertyActionListener ...................................................................... 272
Zdarzenia fazy ............................................................................................................ 273
Podsumowanie całego materiału w jednym miejscu ....................................................... 281
6
JavaServer Faces
Rozdział 8. Podwidoki i pakiet Apache Tiles ..........................................................................................291
Typowe rozmieszczenia ............................................................................................... 291
Przeglądarka książek i biblioteka ................................................................................. 292
Przeglądarka książek .................................................................................................. 294
Monolityczne strony JSF ........................................................................................ 295
Dołączanie wspólnej treści ..................................................................................... 300
Dołączanie treści w aplikacjach zbudowanych na bazie technologii JSP ...................... 300
Dołączanie treści w kontekście aplikacji JSF ............................................................ 301
Dołączanie treści w ramach aplikacji przeglądarki książek ............................................. 302
Prezentacja pakietu Apache Tiles ........................................................................... 305
Instalacja pakietu Tiles .......................................................................................... 305
Stosowanie pakietu Tiles w ramach aplikacji przeglądarki książek ............................. 306
Parametryzacja kafelków ....................................................................................... 308
Rozszerzanie kafelków ........................................................................................... 309
Biblioteka .................................................................................................................. 312
Kafelki zagnieżdżone ............................................................................................. 313
Kontroler kafelków ................................................................................................ 313
Rozdział 9. Niestandardowe komponenty, konwertery i mechanizmy weryfikujące ......................323
Klasy implementujące komponenty niestandardowe ...................................................... 325
Znaczniki i komponenty JavaBeans ......................................................................... 327
Zestaw narzędzi twórcy komponentów niestandardowych ......................................... 328
Kodowanie: generowanie znaczników ........................................................................... 330
Dekodowanie: przetwarzanie wartości
żądania
.............................................................. 334
Stosowanie konwerterów ....................................................................................... 337
Implementacja znaczników komponentów niestandardowych .......................................... 339
Plik deskryptora TLD ............................................................................................. 340
Klasa obsługująca znacznik ................................................................................... 343
Aplikacja zbudowana z wykorzystaniem kontrolki datownika ...................................... 346
Definiowanie klas obsługujących znaczniki w technologii JSF 1.1 .............................. 349
Doskonalenie komponentu datownika .......................................................................... 354
Stosowanie zewnętrznych mechanizmów wizualizacji ................................................ 354
Wywoływanie konwerterów z poziomu zewnętrznych mechanizmów wizualizacji ........... 359
Obsługa metod nasłuchujących zmian wartości ....................................................... 360
Obsługa wyrażeń wskazujących na metody .............................................................. 361
Przykładowa aplikacja ............................................................................................ 363
Użycie skryptu JavaScript do ograniczenia komunikacji z serwerem ................................ 369
Stosowanie komponentów i facet potomnych ............................................................... 372
Przetwarzanie znaczników potomnych typu SelectItem .............................................. 375
Przetwarzanie facet ............................................................................................... 376
Kodowanie stylów CSS .......................................................................................... 377
Stosowanie pól ukrytych ........................................................................................ 378
Zapisywanie i przywracanie stanu ........................................................................... 379
Generowanie zdarzeń akcji ..................................................................................... 382
Stosowanie komponentu panelu podzielonego na zakładki ....................................... 387
Implementacja niestandardowych konwerterów i mechanizmów weryfikacji ...................... 393
Znaczniki konwerterów niestandardowych ............................................................... 393
Znaczniki niestandardowych mechanizmów weryfikacji ............................................. 401
Zgłoś jeśli naruszono regulamin