JavaServer Faces 2.2. Mistrzowskie programowanie - ebook
JavaServer Faces 2.2. Mistrzowskie programowanie - ebook
Niniejsza książka jest skierowana do programistów korzystających z JSF. Przedstawiono w niej wszystkie istotne zagadnienia związane z tworzeniem aplikacji za pomocą JSF 2.2. Czytelnik z pewnością doceni zarówno przejrzyste instrukcje, pozwalające na pełne wykorzystanie możliwości JSF 2.2, jak i liczne ćwiczenia, które będą stanowić doskonałą pomoc w tworzeniu imponujących aplikacji internetowych.
W książce omówiono:
- język wyrażeń (EL) z uwzględnieniem najważniejszych aspektów EL 2.2 oraz EL 3.0
- zagadnienia związane z komunikacją w JSF oraz z zasięgami JSF 2.2
- artefakty JSF i ich konfigurację
- język HTML5, technologię AJAX oraz pojęcie stanu widoku JSF
- tworzenie komponentów niestandardowych i komponentów złożonych
- tematykę technologii Facelet
JavaServer Faces 2.2 — to framework dla mistrzów programowania w Javie!
Anghel Leonard jest niekwestionowanym autorytetem w dziedzinie programowania w Javie. Posiada kilkunastoletnie doświadczenie w pracy z Javą SE, Javą EE oraz z wieloma frameworkami Javy. Jest autorem kilkudziesięciu książek i artykułów poświęconych różnym technologiom Javy. Ostatnio tworzy świetne aplikacje internetowe na potrzeby systemów GIS.
Spis treści
O autorze (11)
O recenzentach (13)
Wstęp (15)
Rozdział 1. Dynamiczny dostęp do danych aplikacji JSF przy użyciu Expression Language (EL 3.0) (19)
- Składnia EL (20)
- Operatory EL (20)
- Hierarchia operatorów EL (21)
- Zastrzeżone słowa EL (21)
- Przetwarzanie natychmiastowe oraz opóźnione (22)
- Wyrażenia wartościowe EL (22)
- Odwołania do komponentów zarządzanych (23)
- Odwołania do właściwości komponentów zarządzanych (24)
- Odwołania do zagnieżdżonych właściwości komponentów zarządzanych (25)
- Odwołania do typów wyliczeniowych Java SE (27)
- Odwołania do kolekcji (27)
- Niejawne obiekty EL (29)
- Wyrażenia odwołujące się do metod (31)
- Teksty warunkowe w JSF (33)
- Pisanie własnego mechanizmu przetwarzającego (37)
- Przegląd EL 3.0 (45)
- Stosowanie operatora przypisania (45)
- Stosowanie operatora konkatenacji (45)
- Stosowanie operatora średnika (46)
- Poznawanie wyrażeń lambda (46)
- Stosowanie obiektów kolekcji (47)
- Podsumowanie (49)
Rozdział 2. Komunikacja w JSF (51)
- Przekazywanie i pobieranie parametrów (52)
- Stosowanie parametrów kontekstu (52)
- Przekazywanie parametrów żądania przy użyciu znacznika (52)
- Stosowanie parametrów widoku (55)
- Wywoływanie akcji z wykorzystaniem żądań GET (62)
- Przekazywanie atrybutów przy użyciu znacznika (66)
- Ustawianie wartości właściwości przy użyciu obiektów nasłuchujących akcji (69)
- Przekazywanie parametrów przy użyciu zasięgu Flash (71)
- Zastępowanie znacznika znacznikiem JSTL (75)
- Przesyłanie danych w ciasteczkach (76)
- Stosowanie pól ukrytych (78)
- Przesyłanie haseł (79)
- Programowy dostęp do atrybutów komponentów interfejsu użytkownika (79)
- Przekazywanie parametrów przy użyciu wyrażeń odwołujących się do metod (80)
- Komunikacja przy użyciu atrybutu binding (81)
- Komunikacja pomiędzy komponentami zarządzanymi (83)
- Wstrzykiwanie jednego komponentu zarządzanego do drugiego (83)
- Komunikacja pomiędzy komponentami zarządzanymi przy użyciu mapy aplikacji lub sesji (85)
- Programowy dostęp do innych komponentów zarządzanych (86)
- Podsumowanie (87)
Rozdział 3. Zasięgi JSF - długość życia i zastosowanie w komunikacji komponentów zarządzanych (89)
- Zasięgi JSF a zasięgi CDI (90)
- Zasięg żądania (92)
- Zasięg sesji (95)
- Zasięg widoku (98)
- Zasięg aplikacji (100)
- Zasięg konwersacji (102)
- Zasięg przepływu (105)
- Prosty przepływ (108)
- Przepływy z komponentami (112)
- Przepływy zagnieżdżone (114)
- Programowe konfigurowanie przepływów (118)
- Przepływy a przypadki nawigacji (120)
- Badanie przypadków nawigacji w przepływach (123)
- Stosowanie metod initializer i finalizer (124)
- Przełączanie przepływu (126)
- Pakowanie przepływów (129)
- Programowy zasięg przepływu (130)
- Zależny pseudozasięg (133)
- Zasięg none (134)
- Zasięg niestandardowy (134)
- Implementacja klasy zasięgu niestandardowego (135)
- Wyznaczanie wyrażeń EL zasięgów niestandardowych (136)
- Kontrola czasu istnienia zasięgu przy użyciu obiektu nasłuchującego akcji (139)
- Kontrola czasu istnienia zasięgu niestandardowego z użyciem obiektów NavigationHandler (141)
- Tworzenie instancji komponentów zarządzanych (144)
- Wstrzykiwanie komponentów (144)
- Podsumowanie (147)
Rozdział 4. Konfigurowanie JSF przy użyciu plików XML i adnotacji - część 1. (149)
- Nowe przestrzenie nazw JSF 2.2 (150)
- Programowa konfiguracja w JSF 2.2 (151)
- Konfigurowanie komponentów zarządzanych w XML-u (152)
- Stosowanie wielu plików konfiguracyjnych (157)
- Konfiguracja ustawień lokalnych i wiązek zasobów (159)
- Konfiguracja walidatorów i konwerterów (161)
- Konfigurowanie nawigacji (169)
- Nawigacja niejawna (169)
- Nawigacja warunkowa (172)
- Nawigacja z wywłaszczeniem (175)
- Nawigacja programowa (177)
- Konfigurowanie obiektów nasłuchujących akcji (178)
- Obiekty nasłuchujące akcji aplikacji (180)
- Konfigurowanie metod nasłuchujących zdarzeń systemowych (183)
- Stosowanie znacznika (183)
- Implementacja interfejsu SystemEventListener (185)
- Konfigurowanie metod nasłuchujących faz (191)
- Stosowanie adnotacji @ListenerFor oraz @ListenersFor (195)
- Podsumowanie (196)
Rozdział 5. Konfigurowanie JSF przy użyciu plików XML i adnotacji - część 2. (197)
- Konfiguracja obiektów obsługi zasobów (198)
- Programowe dodawanie zasobów CSS i JS (205)
- Konfiguracja obiektu obsługi widoków (205)
- Przesłanianie mechanizmów wizualizacji JSF (209)
- Stosowanie operacji wykonywanych po stronie klienta (215)
- Klasy wytwórcze JSF (219)
- Konfiguracja globalnego obiektu obsługi wyjątków (220)
- Konfiguracja klasy wytwórczej RenderKit (223)
- Konfiguracja PartialViewContext (224)
- Konfiguracja obiektu VisitContext (227)
- Konfiguracja obiektów ExternalContext (230)
- Konfiguracja Flash (233)
- Window ID API w JSF 2.2 (235)
- Konfigurowanie cyklu życia (241)
- Konfigurowanie aplikacji (244)
- Konfigurowanie VDL (246)
- Połączone możliwości wielu klas wytwórczych (248)
- Podsumowanie (249)
Rozdział 6. Korzystanie z danych tabelarycznych (251)
- Tworzenie prostej tabeli JSF (252)
- Klasa CollectionDataModel JSF 2.2 (254)
- Sortowanie tabel (259)
- Sortowanie i DataModel - klasa CollectionDataModel (265)
- Usuwanie wiersza tabeli (267)
- Edycja i aktualizacja wierszy tabeli (269)
- Dodawanie nowych wierszy (272)
- Wyświetlanie numerów wierszy (274)
- Wybieranie pojedynczego wiersza (275)
- Wybieranie wielu wierszy (277)
- Zagnieżdżanie tabel (279)
- Podział tabel na strony (280)
- Generowanie tabel przy użyciu API JSF (286)
- Filtrowanie tabel (291)
- Określanie wyglądu tabel przy użyciu stylów (296)
- Zmiana koloru tła wierszy z użyciem atrybutu rowClasses (296)
- Podświetlanie wiersza wskazanego myszą (297)
- Podświetlanie wierszy po kliknięciu myszą (298)
- Podsumowanie (299)
Rozdział 7. JSF i AJAX (301)
- Krótki przegląd cyklu życia JSF-AJAX (302)
- Prosty przykład JSF-AJAX na dobry początek (302)
- Atrybuty JSF-AJAX (303)
- Atrybuty execute oraz render (304)
- Atrybut listener (306)
- Atrybut event (307)
- Atrybut onevent - monitorowanie stanu AJAX-a po stronie klienta (308)
- Atrybut onerror - monitorowanie błędów AJAX-a po stronie klienta (309)
- Grupowanie komponentów w znaczniku (311)
- Zastosowanie AJAX-a do aktualizacji pól formularzy po wystąpieniu błędów walidacji (312)
- Przyciski Anuluj i Wyczyść (314)
- Łączenie AJAX-a i zasięgu przepływu (318)
- Żądania zwrotne i AJAX (322)
- Warunkowe wyświetlanie i przetwarzanie żądań zwrotnych (324)
- Czy to nie jest żądanie AJAX? (327)
- AJAX i znacznik (328)
- Kontrola kolejki żądań AJAX (329)
- Jawne wczytywanie pliku jsf.js (330)
- Prezentacja wartości parametrów (331)
- Metoda jsf.ajax.request i komponenty inne niż UICommand (332)
- Dostosowywanie zawartości pliku jsf.js (335)
- Implementacja AJAX-owego paska postępów (sygnalizator działania) (338)
- Podsumowanie (340)
Rozdział 8. JSF 2.2 - HTML5 i przesyłanie plików na serwer (341)
- Korzystanie z HTML5 i JSF 2.2 (341)
- Atrybuty przekazywane (342)
- Elementy przekazywane (344)
- JSF 2.2 - HTML5 i model Bean Validation 1.1 (Java EE 7) (346)
- Mechanizm przesyłania plików w JSF 2.2 (347)
- Prosty przykład przesyłania plików z wykorzystaniem możliwości JSF 2.2 (348)
- Stosowanie wielu elementów (350)
- Pobieranie informacji o przesyłanym pliku (351)
- Zapis przesłanych danych na dysku (353)
- Walidator przesyłanych plików (355)
- Przesyłanie plików z użyciem AJAX-a (356)
- Przesyłanie plików z podglądem (357)
- Przesyłanie większej liczby plików (364)
- Przesyłanie plików i nieokreślony pasek postępów (366)
- Przesyłanie plików i określony pasek postępów (368)
- Podsumowanie (371)
Rozdział 9. Zarządzanie stanem w JSF (373)
- Zapisywanie stanu widoku w JSF (373)
- Częściowe zapisywanie stanu widoku (374)
- Częściowe zapisywanie stanu i przeglądanie drzewa (374)
- Zapisywanie stanu widoku na serwerze lub kliencie (375)
- Logiczne i fizyczne widoki JSF (378)
- Zapisywanie stanu w bazie danych - aplikacja eksperymentalna (379)
- Obsługa wyjątków ViewExpiredException (386)
- Serializacja stanu w sesji na serwerze (389)
- JSF 2.2 jest technologią bezstanową (391)
- Widoki bezstanowe oraz komponenty umieszczane w zasięgu widoku (392)
- Programowe wykrywanie widoków bezstanowych (394)
- Uwagi dotyczące bezpieczeństwa JSF (395)
- Cross-site request forgery (CSRF) (395)
- Cross-site scripting (XSS) (395)
- Wstrzykiwanie SQL (396)
- Podsumowanie (396)
Rozdział 10. Niestandardowe komponenty JSF (397)
- Tworzenie komponentów niestandardowych, które nie są komponentami złożonymi (398)
- Tworzenie własnego obiektu obsługi znacznika (401)
- Tajniki konstrukcji komponentów niestandardowych (402)
- Tworzenie komponentów złożonych (413)
- Implementacja komponentu złożonego Temperature (416)
- Przekształcanie komponentu jQuery w komponent złożony (420)
- Pisanie pola do wyboru dat HTML5 jako komponentu złożonego (425)
- Wzbogacanie obrazka o akcje (429)
- Stosowanie facet złożonych (431)
- Walidacja lub konwersja danych wejściowych w komponentach złożonych (433)
- Sprawdzanie obecności atrybutu (435)
- Niebezpieczeństwa stosowania komponentów złożonych (435)
- Ukrywanie atrybutów przekazywanych w komponentach złożonych (436)
- Rozpowszechnianie komponentów złożonych w postaci plików JAR w JSF 2.2 (439)
- Dodawanie komponentów złożonych w sposób programowy (441)
- Podsumowanie (443)
Rozdział 11. Kontrakty biblioteki zasobów JSF 2.2 - motywy (445)
- Stosowanie kontraktów (446)
- Określanie wyglądu tabel przy użyciu kontraktów (448)
- Stosowanie kontraktów do określania wyglądu komponentów interfejsu użytkownika (451)
- Kontrakty stylów stosowane na urządzeniach różnych typów (453)
- Tworzenie kontraktów dla komponentów złożonych (458)
- Implementacja przełącznika motywów (460)
- Konfiguracja kontraktów w kodzie XML (467)
- Pakowanie kontraktów w plikach JAR (468)
- Podsumowanie (468)
Rozdział 12. Szablony technologii Facelets (471)
- Krótka prezentacja znaczników technologii Facelets (471)
- Tworzenie prostego szablonu - PageLayout (474)
- Przekazywanie parametrów przy użyciu znacznika (477)
- Przekazywanie właściwości komponentów i metod akcji przy użyciu znacznika (479)
- Stosowanie znaczników oraz (481)
- Iteracja przy użyciu znacznika (484)
- Stosowanie znaczników oraz (487)
- Stosowanie znaczników oraz (489)
- Debugowanie z użyciem znacznika (491)
- Usuwanie zawartości przy użyciu znacznika (492)
- Stosowanie atrybutu jsfc (493)
- Rozszerzanie szablonu PageLayout (494)
- Programowe aspekty faceletów (499)
- Zagadnienia związane z klasą FaceletFactory (499)
- Stosowanie klasy FaceletCache (499)
- Klasa ResourceResolver zastąpiona klasą ResourceHandler (502)
- Programowe dołączanie faceletów (506)
- Tworzenie klasy TagHandler (507)
- Pisanie niestandardowych funkcji bibliotek znaczników faceletów (508)
- Pułapki stosowania faceletów (510)
- AJAX i znacznik (510)
- Przykład użycia znaczników oraz (511)
- Przykład użycia znaczników oraz (512)
- Podsumowanie (512)
Dodatek A. Cykl życia JSF (515)
Skorowidz (517)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-2420-6 |
Rozmiar pliku: | 8,2 MB |