Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax

Podobne dokumenty
Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax

Zastosowanie technologii Ajax w ramach technologii JavaServer Faces wg

Budowa aplikacji wielowarstwowych. zastosowanie walidatorów.

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

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów


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

Zastosowanie słuchaczy zdarzeń wg

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

Budowa prostej aplikacji wielowarstwowej

termin Podobna wada 2) jak w Sklep_ , zal. 3.0 termin

Budowa aplikacji wielowarstwowych. Zastosowanie konwerterów oraz plików typu properties.

termin Podobna wada 2) jak w Sklep_ , zal. 3.0 termin

Złożone komponenty JSF wg

termin. Podobna wada 2) jak w Sklep_6

)<h:commandLink action="#{managed _produkt.dane_pro duktu}" value="ok" actionlistener="#{m anaged_produkt.

Złożone komponenty JSF wg

Nr pyt. 5 zal 4.0

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

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

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

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

Wielowarstwowa aplikacja internetowa. Wykonanie widoku typu tabela. Pliki typu properties. wg

Budowa aplikacji wielowarstwowych, zastosowanie obiektów transferowych, konwerterów i walidatorów

Zastosowanie komponentów EJB typu Session

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

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

Języki i metody programowania Java Lab2 podejście obiektowe

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Zastosowanie walidatorów oraz komponentów wyboru wg

Zastosowanie konwerterów wg

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

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Podstawy technologii JavaServer Faces wg

Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

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.

Programowanie w Javie

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

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

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

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

Dokumentacja modułu Woocommerce

Języki i metody programowania Java. Wykład 2 (część 2)

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Certum Code Signing Instrukcja uzyskania certyfikatu Code Signing SimplySign

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Protokół JDBC współpraca z relacyjnymi bazami danych lab3

Instrukcja obsługi integracji

1. Logowanie się do panelu Adminitracyjnego

Programowanie obiektowe

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

KASK by CTI. Instrukcja

Rejestracja faktury VAT. Instrukcja stanowiskowa

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Konwersja danych. Programowanie komponentowe 4. wg bnaph.html

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

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Programowanie komponentowe 5

Kontynuacja programu z lab3 zaawansowane renderowanie formularzy JSF

Podręcznik użytkownika

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom zaawansowany)

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

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

PODRĘCZNIK UŻYTKOWNIKA PRACOWNIK SPZOZ

Zamawianie Taxi Aktywator Instrukcja użytkownika

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

1 Rejestrator czasu pracy

Spis treści. 1 Moduł Modbus TCP 4

Temat: Organizacja skoroszytów i arkuszy

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Programowanie wielowarstwowe i komponentowe

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

ELF. Instrukcja użytkownika. (System wspomagający wypełnianie wniosków elektronicznych)

Kurier DPD by CTI. Instrukcja

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows 7

Laboratorium - Planowanie zadania przy użyciu GUI i polecenia AT w systemie Windows XP

Instrukcja użytkownika Platforma Walutowa

Kartoteki towarowe Ewa - Fakturowanie i magazyn

7.9. Ochrona danych Ochrona i zabezpieczenie arkusza. Pole wyboru

Instrukcja EQU Kantech

Wykład 03 JavaScript. Michał Drabik

Laboratorium - Zarządzanie pamięcią wirtualną w systemie Windows XP

Aplikacja Shoper Appstore Powiązane w koszyku REALIZACJA

Specyfikowanie wymagań przypadki użycia

Aplikacje WWW - laboratorium

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Zastosowanie słuchaczy zdarzeń, walidatorów oraz komponentów wyboru wg

Podstawowe informacje o technologii Java Persistence API - przykład

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

INSTRUKCJA INSTALACJI MODUŁU

Miejskie Wodociągi i Oczyszczalnia sp. z o.o. w Grudziądzu. ibok. Internetowe Biuro Obsługi Klienta. Instrukcja obsługi

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Uruchomienie aplikacji Plan lekcji w przeglądarce Internet Explorer

Transkrypt:

Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax Laboratorium 5 Technologie internetowe Zofia Kruczkiewicz TINT_Lab_5, Zofia Kruczkiewicz 1

Wykaz pytań dotyczących materiału wykorzystanego w lab5, które należy opracować (m.in. wykłady: 5). 1. Należy opisać rolę znacznika <f:ajax execute="cena promocja" render="brutto"/> zagnieżdżonego w znaczniku <h:commandbutton. Co oznaczają i jaką rolę pełnią atrybuty execute i render? 2. Należy opisać rolę znacznika <f:ajax event="blur" execute="nazwa" render="messagepanel"/> zagnieżdżonego w znaczniku <h:inputtext. Co oznaczają i jaką pełnią rolę atrybuty event, execute oraz render? 3. Należy opisać rolę znacznika <f:ajax execute="cena promocja" render="brutto"/> zagnieżdżonego w znaczniku <h:selectonemenu. Co oznaczają i jaką pełnią rolę atrybuty event, execute oraz render? TINT_Lab_5, Zofia Kruczkiewicz 2

Zastosowanie znacznika f:ajax w celu poprawy wydajności programu TINT_Lab_5, Zofia Kruczkiewicz 3

Czynności początkowe przed wykonaniem p. 1. Wykonany program jest przeznaczony do rozwijania wg p.1-6. Należy wykonać kopię programu Sklep_6, wykonanego podczas lab4, jako Sklep_6_Ajax ( wg wskazówek z instrukcji do lab. 2, slajd 4: http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/ti_/lab_tint_2.pdf). Ustawić kodowanie UTF-8; po zaznaczeniu nazwy projektu w oknie Projects prawym klawiszem myszy wybrać pozycję Properties/Sources/Encoding/UTF-8 4

1. Wyświetlanie ceny brutto przed przekazaniem wprowadzanych danych do przetwarzania 1.1. Należy dodać przycisk do strony dodaj_podukt2.xhtml, który po naciśnięciu podaje aktualną cenę brutto wynikającą z podanej promocji i ceny netto. Cena brutto jest wyświetlana na stronie dodaj_podukt2.xhtml, ale bez przeładowania tej strony. W tym celu należy dodać jako ostatni fragment w znaczniku panelgrid strony znaczniki: h:outputtext oraz h:commandbutton z zagnieżdżonym znacznikiem f:ajax, który po kliknięciu na przycisk powoduje wysłanie wartości znaczników h:inputtext o id="cena" i id="promocja" na serwer, gdzie zostanie obliczona cena brutto za pomocą metody getcena_brutto w komponencie managed_produkt i wysłanie jej do przeglądarki w znaczniku h:outputtext o id="brutto". <h:panelgrid columns="2" >.. <h:commandbutton value="#{bundle['lista_produktow.cena_brutto']}"> <f:ajax execute="cena promocja" render="brutto"/> </h:commandbutton> <h:outputtext id="brutto" value="#{managed_produkt.cena_brutto_}" > <f:convertnumber currencysymbol="zł" type="currency"/> </h:outputtext> </h:panelgrid> W atrybucie execute znacznika f:ajax znajduje się łańcuch nazw jako id poszczególnych znaczników h:inputtext, służących do wprowadzania danych na stronie dodaj_produkt2.xhtml: <h:inputtext id="cena" <h:inputtext id="promocja" Aby ten kolejny element strony działał należy wykonać następujące czynności, podane dalej. 5

1.2. Należy zdefiniować w pakiecie pomoc projektu klasę o nazwie Uslugi TINT_Lab_5, Zofia Kruczkiewicz 6

1.3. Zdefiniowanie uniwersalnej metody cena_brutto w klasie Uslugi TINT_Lab_5, Zofia Kruczkiewicz 7

1.4. Przedefiniowanie metody cena_brutto w klasie Produkt1 (wprowadzenie wieloużywalności kodu) TINT_Lab_5, Zofia Kruczkiewicz 8

1.5. Dodanie metody getcena_brutto_ w klasie Managed_produkt (wprowadzenie wieloużywalności kodu), wywołanej w atrybucie value: <h:outputtext id="brutto" value="#{managed_produkt.cena_brutto_}" > (str. 5) TINT_Lab_5, Zofia Kruczkiewicz 9

1.6. Wynik działania znacznika <f:ajax execute="cena promocja" render="brutto"/> Uwaga: w celu uzyskania wyniku należy kliknąć na przycisk Cena brutto Stan przed naciśnięciem przycisku Cena brutto Stan po naciśnięciu przycisku Cena brutto Stan po naciśnięciu przycisku Cena brutto Stan po naciśnięciu przycisku Cena brutto TINT_Lab_5, Zofia Kruczkiewicz 10

2. Wyświetlanie informacji o liczbie zmian lub braku wprowadzonych danych w polu wejściowym o etykiecie Podaj nazwe produktu na stronie podaj_produkt2.xhtml bez przeładowania całej strony (za pomocą znacznika f:ajax) należy zmodyfikować kod h:inputtext podanej poniżej. <h:outputlabel value="#{bundle['dodaj_produkt2.nazwa']}" for="nazwa" /> <h:inputtext id="nazwa" title="#{bundle['dodaj_produkt2.nazwa1']}" value="#{managed_produkt.nazwa}" required="true requiredmessage="#{bundle['dodaj_produkt2.blad_nazwa']}" > <f:valuechangelistener binding="#{managed_produkt.zmiana1}"/> <f:ajax event="blur" execute="nazwa" render="messagepanel"/> </h:inputtext> Uwaga: w celu uzyskania komunikatów należy kliknąć np. na tło formularza (dotyczy to p. 2-6). Zdarzenie event="blur" występuje w momencie utraty ogniskowania elementu h:inputtext o id ="nazwa". Wynik zostanie wyświetlony w polu o id="messagepanel" zdefiniowany w pliku template.xhtml. 11

3. Należy wprowadzić zmiany do kodu strony dodaj_produkt2.xhtml w celu wyświetlania informacji o liczbie zmian, braku wprowadzonych danych oraz błędy formatu danych w polu wejściowym o etykiecie Podaj cene netto produktu na stronie podaj_produkt2.xhtml bez przeładowania strony za pomocą znacznika znacznika f:ajax (przykład 2). 12

4. Należy wprowadzić zmiany do kodu strony dodaj_produkt2.xhtml w celu wyświetlania informacji o błędach przekroczenia wartości minimalne i maksymalnej, braku wprowadzonych danych oraz błędu formatu w polu wejściowym o etykiecie Podaj promocje produktu na stronie podaj_produkt2.xhtml bez przeładowania strony za pomocą znacznika f:ajax (przykład 2). 13

5. Należy wprowadzić zmiany do kodu strony dodaj_produkt2.xhtml w celu wyświetlania informacji o błędach formatu daty lub braku wprowadzonych danych daty w polu wejściowym o etykiecie Podaj date produktu na stronie podaj_produkt2.xhtml bez przeładowania strony za pomocą znacznika f:ajax (przykład 2) TINT_Lab_5, Zofia Kruczkiewicz 14

6. Należy wprowadzić zmiany do kodu strony dodaj_produkt2.xhtml w celu wyświetlania informacji o częstotliwości prowadzanych danych, braku danych w polu wejściowym dodanym w ramach poprzednich laboratoriów bez przeładowania strony za pomocą znacznika f:ajax (przykład 2) TINT_Lab_5, Zofia Kruczkiewicz 15

Czynności początkowe przed wykonaniem p. 7 Należy wykonać kopię programu Sklep_7, wykonanego podczas lab4, jako Sklep_7_Ajax ( wg wskazówek z instrukcji do lab. 2, slajd 4: http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/ti_/lab_tint_2.pdf). Ustawić kodowanie UTF-8; po zaznaczeniu nazwy projektu w oknie Projects prawym klawiszem myszy wybrać pozycję Properties/Sources/Encoding/UTF-8 16

7. Należy wprowadzić zmiany w programie Sklep_7_Ajax wykonanym jako kopia Sklep_7 zrealizowanego w ramach lab5 należy dokonać zmiany podane poniżej w pliku dodaj_produkt2.xhtml 7.1. W znaczniku wyboru promocji dodano znacznik f:ajax w celu wybrania wartości wprowadzonych w znacznikach h:inputtext o id="cena" i id="promocja" i wyświetlenia wartości ceny brutto w komponencie h:outputtext o id="brutto" bez konieczności ponownego załadowania całej strony. <h:panelgrid columns="2">. <h:outputlabel value="#{bundle['dodaj_produkt2.promocja']}" for="promocja" /> <h:selectonemenu id="promocja" title="#{bundle['dodaj_produkt2.promocja1']}" value="#{managed_produkt.promocja}" required="true requiredmessage="#{bundle['dodaj_produkt2.blad_promocja']}" > <f:selectitems value="#{managed_produkt.itemsavailableselectone}"/> <f:ajax execute="cena promocja" render="brutto"/> </h:selectonemenu>.. <h:outputlabel for="brutto" value="#{bundle['lista_produktow.cena_brutto']}"/> <h:outputtext id="brutto" value="#{managed_produkt.cena_brutto_}" > <f:convertnumber currencysymbol="zł" type="currency"/> </h:outputtext> </h:panelgrid> TINT_Lab_5, Zofia Kruczkiewicz 17

7.2. Należy skopiować plik z definicją klasy Uslugi.java do pakietu pomoc (z pakietu pomoc z programu Sklep_6_Ajax) i następnie wykonać zmiany wg p. 1.4, 1.5: Klasa Uslugi package pomoc; public class Uslugi { public static float cena_brutto(int promocja, float cena) { return cena * (1 - (float) promocja / 100); } } Nowa metoda w klasie Managed_produkt: public float getcena_brutto_() { return Uslugi.cena_brutto(promocja, cena); } Zmiana metody w klasie Produkt1: public float cena_brutto() { return Uslugi.cena_brutto(promocja, cena); } TINT_Lab_5, Zofia Kruczkiewicz 18

7.3. Wynik zmiany zawartości strony dodaj_produkt2.xhtml bez konieczności przeładowania całej strony zmiana jedynie pola z etykietą Cena brutto Uwaga: w celu uzyskania wyniku należy wybrać promocję z listy rozwijanej TINT_Lab_5, Zofia Kruczkiewicz 19