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. 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 walidatorów.

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

Zastosowanie słuchaczy zdarzeń wg

Budowa prostej aplikacji wielowarstwowej

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


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_6

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

Złożone komponenty JSF wg

Złożone komponenty JSF wg

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

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

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

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

Nr pyt. 5 zal 4.0

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

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

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

Zastosowanie konwerterów wg

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

Zastosowanie komponentów EJB typu Session

Zastosowanie walidatorów oraz komponentów wyboru wg

Podstawy technologii JavaServer Faces wg

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

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

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

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

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 z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

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

Programowanie w Javie

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

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

Kontynuacja programu z lab3 zaawansowane renderowanie formularzy JSF

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

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

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

Konwersja danych. Programowanie komponentowe 4. wg bnaph.html

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

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

Programowanie wielowarstwowe i komponentowe

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

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

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

Dokumentacja modułu Woocommerce

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

Instrukcja obsługi integracji

Kartoteki towarowe Ewa - Fakturowanie i magazyn

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

Certum Code Signing Instrukcja uzyskania certyfikatu Code Signing SimplySign

Spis treści. 1 Moduł Modbus TCP 4

1. Logowanie się do panelu Adminitracyjnego

Programowanie obiektowe

Podstawowe informacje o technologii Java Persistence API - przykład

Temat: Organizacja skoroszytów i arkuszy

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

Specyfikacja API Runtime BAS 3.0

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

Podręcznik użytkownika

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

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

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

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

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

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

PODRĘCZNIK UŻYTKOWNIKA PRACOWNIK SPZOZ

Programowanie komponentowe 5

1 Moduł Diagnostyki Sieci

Rejestracja faktury VAT. Instrukcja stanowiskowa

Zamawianie Taxi Aktywator Instrukcja użytkownika

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Kurier DPD by CTI. Instrukcja

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

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

SymSync integracja danych Opencart/Prestashop Symfonia Handel Instrukcja obsługi

Laboratorium 8 ( Android -pierwsza aplikacja)

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

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

APACZKA. (Moduł Magento) v Strona 1 z 11

Aplikacja Shoper Appstore Powiązane w koszyku REALIZACJA

1 Rejestrator czasu pracy

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

KASK by CTI. Instrukcja

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

Obszar Logistyka. Sprawdzenie wartości realizacji zapotrzebowań rocznych i zestawienie pobrań. Instrukcja użytkownika

1 Moduł Modbus ASCII/RTU 3

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

Zmiany wprowadzone w pakiecie. Projekt PSZ.eDOK

Transkrypt:

Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax Laboratorium 6 Technologie internetowe Zofia Kruczkiewicz TINT_Lab_6, Zofia Kruczkiewicz 1

Wykaz pytań dotyczących materiału wykorzystanego w lab5, które należy opracować. {Pytania zostaną wkrótce dodane} TINT_Lab_6, Zofia Kruczkiewicz 2

Czynności początkowe Należy wykonać kopię programu Sklep_6, wykonanego podczas lab5 jako Sklep_6_Ajax. Ustawić kodowanie UTF-8; po zaznaczeniu nazwy projektu w oknie Projects prawym klawiszem myszy wybrać pozycję Properties/Sources/Encoding/UTF-8 3

Zastosowanie znacznika f:ajax w celu poprawy wydajności programu TINT_Lab_6, Zofia Kruczkiewicz 4

1. Wyświetlanie ceny brutto przed przekazaniem wprowadzanych danych do przetwarzaniem 1.1. Należy dodać przycisk, 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 <h:inputtext id="cena" id="promocja" 5

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

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

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

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

1.6. Wynik działania znacznika <f:ajax execute="cena promocja" render="brutto"/> TINT_Lab_6, 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> 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) 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) 15

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> 16

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); } 17

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 TINT_Lab_6, Zofia Kruczkiewicz 18