Wprowadzenie do technologii JavaServer Faces 2.2 na podstawie Wykład 2 Technologie internetowe

Podobne dokumenty
Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Java Server Faces narzędzie do implementacji w wy prezentacji

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Zastosowanie technologii Ajax w ramach technologii JavaServer Faces wg

Projektowanie i wdrażanie systemów informatycznych. Dodanie aplikacji klienta uruchamianej przez przeglądarkę kontynuacja projektu:

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Złożone komponenty JSF wg

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów

Programowanie komponentowe 5

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Zastosowanie słuchaczy zdarzeń wg

Budowa prostej aplikacji wielowarstwowej

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Przykłady pytań do zaliczenia programu wykonywanego w ramach zajęć laboratoryjnych 6-8 z Programowania komponentowego w Javie. Zofia Kruczkiewicz

Facelets ViewHandler

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie


Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Aplikacje WWW - laboratorium

Podstawowe informacje o technologii Java Persistence API - przykład

Podstawy technologii JavaServer Faces wg

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Java Server Faces - wprowadzenie

Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax

Zastosowanie komponentów EJB typu Session

Podstawowe informacje o technologii JavaEE5 Programowanie komponentowe 2

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

Projekt INP Instrukcja 2. Autor Dr inż. Zofia Kruczkiewicz

JavaServer Faces (JSF)

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń, zastosowanie walidatorów, wykonanie listy typu Drop Down List.

1 Wprowadzenie do J2EE

Laboratorium 7 Blog: dodawanie i edycja wpisów

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń

Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Web frameworks do budowy aplikacji zgodnych z J2EE

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Java EE: JSF + EJB + JPA + CDI + BV

Poznań Java User Group Java Server Faces. Wprowadzenie (Fakty i Mity)

Szkolenie wycofane z oferty

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Programowanie wielowarstwowe i komponentowe

Java EE: JSF + EJB + JPA

6. Powtórz kroki z punktu 5. dla strony sorry.jsp, zmieniając jedynie treść wyświetlanego tekstu ( Niestety zamiast Witaj )

Enterprise JavaBeans (EJB)

Aplikacje Internetowe, Servlety, JSP i JDBC

Aplikacje WWW - laboratorium

Tworzenie warstwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP

Oracle Application Express

Serwery Statefull i Stateless

Wybrane działy Informatyki Stosowanej

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Zajęcia 4 - Wprowadzenie do Javascript

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Programowanie obiektowe zastosowanie języka Java SE

Projekt INP Instrukcja 1. Autor Dr inż. Zofia Kruczkiewicz

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów, tabel oraz plików typu properties

JSF 1.2. w wykonaniu NetBeans IDE 6.1. Jacek Laskowski

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów, tabel oraz plików typu properties

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Budowa aplikacji wielowarstwowych. zastosowanie walidatorów.

Aplikacje WWW - laboratorium

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Programowanie w Javie 2. Płock, 26 luty 2014 r.

6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

Podstawy JavaScript ćwiczenia

Wprowadzenie do Doctrine ORM

Wybrane działy Informatyki Stosowanej

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Instrukcja obsługi Multiconverter 2.0

Konwersja danych. Programowanie komponentowe 4. wg bnaph.html

Instrukcja obsługi DHL KONWERTER 1.6

Programowanie Obiektowe GUI

Formularze HTML. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik. radmat

Przykład połączenie z bazą danych

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Budowa aplikacji wielowarstwowych. Zastosowanie Kaskadowych arkuszy stylów (CSS)

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Specyfikacja HTTP API. Wersja 1.6

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

16) Wprowadzenie do raportowania Rave

Wykład 5: PHP: praca z bazą danych MySQL

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Tworzenie warstwy prezentacji drugi etap Przykład z laboratorium5_6. Autor Zofia Kruczkiewicz Wzorce oprogramowania laboratorium7_8

REACT NATIVE. Anna Maziejuk Kamil Jankowski

Transkrypt:

Wprowadzenie do technologii JavaServer Faces 2.2 na podstawie https://docs.oracle.com/javaee/7/jeett.pdf Wykład 2 Technologie internetowe Technologie internetowe 2, Zofia Kruczkiewicz 1

Technologia JavaServer Faces (JSF) (1) Technologia JavaServer Faces jest środowiskiem do tworzenia interfejsu użytkownika w aplikacjach internetowych. Głównymi składnikami technologii JavaServer Faces są: framework do budowy GUI zbudowanego z komponentów. elastyczny model do generowania elementów strony www w postaci różnych rodzajów znaczników HTML lub innych języków i technologii opartych na znacznikach. Obiekt typu Renderer generuje znaczniki do renderowania komponentu i konwertuje dane przechowywane w obiektach modelu do typów, które mogą być reprezentowane w widoku. standard RenderKit do generowania znaczników HTML. język wyrażeń (EL Expression Language) Technologie internetowe 2, Zofia Kruczkiewicz 2

Technologia JavaServer Faces (JSF) (2) Wszystkie te funkcje są dostępne za pomocą standardowego API Javy i plików konfiguracyjnych typu XML. W platformie Java EE 7, nowe funkcje JavaServer Faces obejmują: wykorzystanie HTML5 podczas tworzenie stron www zastąpienie technologii wyświetlania opartą na stronach JSP(JavaServer Pages) technologią Facelets opartą na plikach XHTM zastosowanie biblioteki zasobów Platforma Java EE 7 wymaga JavaServer Faces 2.2 i języka wyrażeń EL 3.0. Technologie internetowe 2, Zofia Kruczkiewicz 3

Proces żądanie-odpowiedź w technologii JavaServer Faces Technologie internetowe 2, Zofia Kruczkiewicz 4

Zadania realizowane podczas cyklu życia aplikacji typu JavaServer Faces Obsługa żądań Dekodowanie parametrów Modyfikacja i zachowanie stanu Renderowania stron internetowych i wysłanie ich do przeglądarki internetowej Framework aplikacji typu JavaServer Faces zarządza fazami cyklu życia: automatycznie w przypadku prostych aplikacji, ręcznie w przypadku złożonych aplikacji. Technologie internetowe 2, Zofia Kruczkiewicz 5

Modele JSF 1. Komponenty typu javax.faces.component.uicomponent przeznaczone do specyfikacji stanu i zachowania komponentów UI (interfejsu użytkownika) 2. Model sposobu renderowania komponentów JSF na elementy strony HTML 3. Model konwersji definiujący sposób rejestrowania konwerterów danych w komponencie 4. Model obsługi zdarzeń komponentów 5. Model walidacji definiujący sposób rejestrowania walidatorów danych w komponencie Technologie internetowe 2, Zofia Kruczkiewicz 6

Standard cyklu życia Request-Response dla JavaServer Faces 7

Opis faz cyklu życia JavaServer Faces (1) Dwa typy cyklu życia: initial request (pierwsze wywołanie strony) realizowane są tylko fazy RestoreView i Render Response postbacks (obsługa formularza): realizowane są wszystkie fazy. Akcje Response Complete oznaczają odwołanie do innej części aplikacji, nie zawierającej komponentów Java Server Faces Dwie główne fazy cyklu życia: execute składa się z podfaz, wspierających obsługę drzewa komponentów: w zakresie konwertowania i walidacji danych, obsługi zdarzeń komponentów oraz przekazania danych komponentów do obiektów typu Managed Bean w sposób uporządkowany Render Drzewo komponentów reprezentuje stronę JSF, zwaną view (widok). W przypadku, gdy komponent typu JavaServer Faces w procesie typu submit przekierowuje żądanie do innej strony, też w ustalony sposób rezalizowane są fazy cyklu życia (w celu konwersji i walidacji, zmiany stanu modelu i generowania widoku) 8

Opis faz cyklu życia JavaServer Faces (2) Typy faz w przypadku pełnego cyklu życia np. wpłata gotówki Restore View: reakcja na zdarzenie wprowadzenia wartości na formularzu w polu typu TextField i wysłanie przez klienta strony (tworzenie widoku strony jako drzewa komponentów UI i łączenie ich z walidatorami, konwerterami i słuchaczami zdarzeń aktualizacja tego widoku w javax.faces.context.facescontext dla cyklu typu postback lub zapamiętanie pustego widoku w przypadku cyklu initial request. Pusty widok w fazie RenderResponse jest renderowany z wykorzystaniem komponentów powiązanych ze znacznikami strony. Pierwsze żądanie powoduje utworzenie nowego drzewa komponentów i przechowanie go w obiekcie typu javax.faces.context.facescontext, który reprezentuje wszystkie informacje związane z procesem obsługi żądania i tworzenia odpowiedzi 9

Opis faz cyklu życia JavaServer Faces (3) Apply Request Values: konwersja danych i zachowanie ich wartości, wiązanie zdarzeń ze słuchaczami, obsługa konwersji, walidacji i zdarzeń w przypadku, gdy atrybut immediate ma wartość true, wtedy konwersje, walidacje oraz zdarzenia powiązane z takim komponentem zachodzą w tej fazie - możliwość akcji Response Complete, możliwość przejścia do fazy Render Response jako wynik obsługi błędów. W przypadku żądania przekierowania do innego zasobu aplikacji internetowej np. do usług internetowych lub generowanie odpowiedzi, która nie zawiera komponentów typu JavaServer Faces, wówczas program w celu pominięcia fazy RenderResponse musi wywołać metodę facescontext.responsecomplete Na końcu fazy komponenty zawierają dane zaktualizowane Częściowy cykl życia aplikacji typu JSF oraz częściowy rendering10

Opis faz cyklu życia JavaServer Faces (4) Process Validations: obsługa walidacji za pomocą walidatorów umieszczonych w komponentach widoku użycie metody validate (processvalidators), konwersji i zdarzeń, zapamiętanie wartości wprowadzonych w formularzu, możliwość przejścia do fazy Render Response (obsługa błędów lub normalna reakcja) jeśli metoda validate zostanie wywołana przez walidator lub słuchacze zdarzeń wywołają metodę renderresponse od bieżącego obiektu typu FacesContext. W przypadku błędu, do obiektu typu FacesContext zostaną wstawione komunikaty o błędach i renderowanie strony z informacją o błędzie W przypadku żądania przekierowania do innego zasobu aplikacji internetowej np. do usług internetowych lub generowanie odpowiedzi, która nie zawiera komponentów typu JavaServer Faces, wówczas program w celu pominięcia fazy RenderResponse musi wywołać metodę facescontext.responsecomplete Częściowy cykl życia aplikacji typu JSF oraz częściowy rendering 11

Opis faz cyklu życia JavaServer Faces (5) Update Model Values: Jeśli dane są poprawne, wtedy wybrane właściwości komponentów w widoku są zaktualizowane - w przeciwnym wypadku następuje przejście do fazy RenderResponse i renderowanie strony z informacją o błędzie Jeśli jakikolwiek komponent wywoła metodę updatemodels lub renderresponse od aktualnego obiektu typu FacesContext następuje przejście do fazy RenderResponse W przypadku żądania przekierowania do innego zasobu aplikacji internetowej np. do usług internetowych lub generowanie odpowiedzi, która nie zawiera komponentów typu JavaServer Faces, wówczas program w celu pominięcia fazy RenderResponse musi wywołać metodę facescontext.responsecomplete Technologie internetowe 2, Zofia Kruczkiewicz 12

Opis faz cyklu życia JavaServer Faces (6) Invoke Application: realizacja zdarzeń np. typu submit formularza często obsługa dotyczy jedynie rekonstrukcji widoku lub połączenie z inną stroną, możliwość przejścia do fazy Render Response (obsługa błędów lub normalna reakcja) W przypadku żądania przekierowania do innego zasobu aplikacji internetowej np. do usług internetowych lub generowanie odpowiedzi, która nie zawiera komponentów typu JavaServer Faces, wówczas program w celu pominięcia fazy RenderResponse musi wywołać metodę facescontext.responsecomplete Technologie internetowe 2, Zofia Kruczkiewicz 13

Opis faz cyklu życia JavaServer Faces (7) Render Response: ustalenie zawartości strony w przypadku cyklu typu postback - komunikaty jako normalna reakcja lub komunikaty o błędach, pochodzące z faz ApplyRequest, ProcessValidations lub UpdateModel. Jeśli strona zawiera znaczniki h:message lub h:messages, błędy wyświetlane są za pomocą renderowania typ znaczników ustalenie nowej zawartości kontenera JSP zawierającego drzewo komponentów UI przebudowanie istniejącego widoku strony utworzonego podczas Restore View dla cyklu typu postbacks Technologie internetowe 2, Zofia Kruczkiewicz 14

Częściowy cykl życia aplikacji typu JSF oraz częściowy rendering Takie przetwarzanie jest możliwe, Technologie internetowe 2, Zofia Kruczkiewicz 15

Przykład 2 aplikacji typu JavaServer Faces Technologie internetowe 2, Zofia Kruczkiewicz 16

Definicja formularza domyślna strona startowa index.xhtml Pole tekstowe wejściowe (inputtext) przypisuje dane wejściowe do atrybutu name obiektu personalia (value) Wypełnienie pola jest wymagane (required= true ), w przeciwnym wypadku wyświetlany jest komunikat: Blad: Podaj mie. (requiredmessage) Wprowadzone słowo nie może mieć więcej niż 10 znaków (maxlength), Przycisk wywołujący akcję Request; w fazie Response zwracana jest strona rezultat.xhtml 17

Dodanie nowej strony xhtml wybór New z listy po kliknięciu prawym klawiszem na nazwę projektu w zakładce Projects, następnie wybór z kolejnej listy pozycji JSF Page 18

Nadanie nazwy pliku rezultat (File Name) i wybór katalogu pliku (Location) i wybór Next 19

Zawartość pliku rezultat.xhtml Technologie internetowe 2, Zofia Kruczkiewicz 20

Edycja strony rezultat.xhtml przez uzupełnienie kodu, wyświetlana w fazie Response po fazie Request ze strony index.xhtml naciśnięcie przycisku OK Dodanie znacznika do wyświetlania danych na stronie: <h:outputlabel> 21

Strona rezultat.xhtml po edycji Pole tekstowe wyjściowe typu etykieta outputlabel, które wyświetla dane pobrane z atrybutu name obiektu personalia (value) Przycisk wywołujący akcję Request; w fazie Response zwracana jest strona inedx.xhtml 22

Dodanie obiektu typu ManagedBean - wybór New z listy po kliknięciu prawym klawiszem na nazwę projektu w zakładce Projects, następnie wybór pozycji Other z kolejnej listy Technologie internetowe 2, Zofia Kruczkiewicz 23

Wybór JavaServer Faces/JSF ManagedBean (2) 24

Wybór czasu życia obiektu typu ManagedBean (3) 25

Czas życia komponentów typu ManagedBean Application (javax.enterprise.context.applicationscoped): zachowanie danych z interakcji wszystkich użytkowników aplikacji internetowej. Session (javax.enterprise.context.sessionscoped): zachowanie danych wielu interakcji użytkownika aplikacji internetowej określonych czasem sesji Flow (javax.faces.flows.flowscoped): zachowanie danych interakcji użytkownika aplikacji internetowej pochodzących z określonego przepływu danych w tej aplikacji Request (javax.enterprise.context.requestscoped): zachowanie danych jednej interakcji żądanie-odpowiedź użytkownika aplikacji internetowej Dependent (javax.enterprise.context.dependent): czas życia danego komponentu ManagedBean zależy od innych komponentów typu ManagedBean 26

Zawartość klasy typu ManagedBean (4) 27

Aplikacja po uruchomieniu Rezultat zastosowania atrybutów w znaczniku input: required="true oraz requiredmessage="blad: Podaj imie." 28

Aplikacja po uruchomieniu Można wstawić tylko 10 znaków dzięki zastosowaniu atrybutu w znaczniku input: maxlength=10 29

Kod HTML formularza index.xhtml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="j_idt2"> <title>facelet Title</title> </head> <body> <form id="j_idt5" name="j_idt5" method="post" action="/witaj/faces/index.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt5" value="j_idt5" /> <h2> Hello from Facelets </h2> <input id="j_idt5:name" type="text" name="j_idt5:name" maxlength="10" title="imie: " /> <p> </p> <input id="j_idt5:ok" type="submit" name="j_idt5:ok" value="ok" /> <input type="hidden" name="javax.faces.viewstate" id="j_id1:javax.faces.viewstate:0 value="1734791381227717204:-5721288883428752962" autocomplete="off" /> </form> </body> </html> Technologie internetowe 2, Zofia Kruczkiewicz 30

Kod HTML formularza rezultat.xhtml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="j_idt2"> <title>facelet Title</title> </head> <body> <h2> Hello from Facelets </h2> <form id="j_idt6" name="j_idt6" method="post" action="/witaj/faces/rezultat.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt6" value="j_idt6" /> <label id="j_idt6:rezultat" title="rezultat">witaj: Kowalski</label> <p></p> <input id="j_idt6:powrot" type="submit" name="j_idt6:powrot" value="powrot" /> <input type="hidden" name="javax.faces.viewstate" id="j_id1:javax.faces.viewstate:0" value="1734791381227717204:-8349896159163539121" autocomplete="off" /> </form> </body> </html> Technologie internetowe 2, Zofia Kruczkiewicz 31

Dodatek do wykładu 2 Przykład - aplikacja bazodanowa JSF http://netbeans.org/kb/docs/web/jsf20-crud.htmld (podobnie przebiega proces tworzenia aplikacji z wykorzystaniem platformy Java EE 7) Technologie internetowe 2, Zofia Kruczkiewicz 32

1. Tworzenie pustej bazy danych (1) Zakładanie pustej bazy danych w systemie baz danych Derby: Database Name: Katalogproduktow, User Name: Katalogproduktow, Password: Katalogproduktow 33

1. Połączenie z pustą bazą danych (1) 34

1. Połączenie z pustą bazą danych (2) 35

Tworzenie aplikacji typu JavaServer Faces File/New Project/Java Web/Web Application (1) 36

Tworzenie aplikacji internetowej JSF (2) o nazwie Katalogproduktow 37

Tworzenie aplikacji internetowej JSF (3) 38

Wykonanie klasy typu Entity (1) - wybór New z listy po kliknięciu prawym klawiszem na nazwę projektu w zakładce Projects, następnie wybór z kolejnej listy pozycji Other 39

Wykonanie klasy typu Entity (2) wybór Persistence/Entity Class 40

Wykonanie klasy typu Entity (3) o nazwie Produkt w pakiecie modeldanych 41

Wykonanie klasy typu Entity (4) wynik 42

Dodanie składowych do utworzonej klasy Produkt typu Entity 43

Generowanie stron JSF z encji (1) wybór New z listy po kliknięciu prawym klawiszem na nazwę projektu w zakładce Projects, następnie wybór pozycji JSF Page from Entity Class z kolejnej listy 44

Generowanie stron JSF z encji (2) 45

Generowanie stron JSF z encji oraz komponentów tworzących razem warstwę internetową, warstwę biznesową połączoną z warstwą integracji (3) 46

Wygenerowany plik konfigurujący połączenie z bazą danych persistence.xml Technologie internetowe 2, Zofia Kruczkiewicz 47

Konfigurowanie połączenia z bazą danych Katalogproduktow w plik konfigurującym połączenie z bazą danych persistence.xml Technologie internetowe 2, Zofia Kruczkiewicz 48

Rezultat konfiguracji pliku persistence.xml Technologie internetowe 2, Zofia Kruczkiewicz 49

Wygenerowana strona główna index.xhtml Technologie internetowe 2, Zofia Kruczkiewicz 50

Zawartość katalogu projektu aplikacji internetowej (1) 51

Zawartość katalogu projektu aplikacji internetowej (2) 52

Zawartość katalogu projektu aplikacji internetowej (3) Technologie internetowe 2, Zofia Kruczkiewicz 53

Widok aplikacji JSF (1) - po uruchomieniu strony index.xhtml Widok aplikacji JSF (2) - po wyborze Show All Produkt Items 54

Widok aplikacji JSF (3) - po wyborze Create New Produkt Widok aplikacji JSF (4) - po wyborze Save Technologie internetowe 2, Zofia Kruczkiewicz 55

Widok aplikacji JSF (5) - po wyborze Show All Produkt Items Widok aplikacji JSF (6) - po wyborze Index Technologie internetowe 2, Zofia Kruczkiewicz 56

Strona JSF formularza index.xhtml Technologie internetowe 2, Zofia Kruczkiewicz 57

Kod HTML formularza index.xhtml Technologie internetowe 2, Zofia Kruczkiewicz 58

Strona JSF formularza View.xhtml (1) Technologie internetowe 2, Zofia Kruczkiewicz 59

Strona JSF formularza View.xhtml (2) Technologie internetowe 2, Zofia Kruczkiewicz 60

Kod HTML formularza View.xhtml (1) Technologie internetowe 2, Zofia Kruczkiewicz 61

Kod HTML formularza View.xhtml (2) Technologie internetowe 2, Zofia Kruczkiewicz 62