Tworzenie aplikacji J2EE w oparciu o Oracle Application Development Framework (ADF)



Podobne dokumenty
Web frameworks do budowy aplikacji zgodnych z J2EE

Szkolenie wycofane z oferty

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Plan. Raport. Tworzenie raportu z kreatora (1/3)

1 Wprowadzenie do J2EE

Oracle Application Express -

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

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

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

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

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

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

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

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

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

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

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Dokument Detaliczny Projektu

Java EE: JSF + EJB + JPA

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Oracle PL/SQL. Paweł Rajba.

Zagadnienia projektowania aplikacji J2EE

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

IBM Rational Software Architect uproszczona instrukcja użytkowania

Programowanie MorphX Ax

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Serwery LDAP w środowisku produktów w Oracle

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Tworzenie raportów XML Publisher przy użyciu Data Templates

Baza danych sql. 1. Wprowadzenie

Java Server Faces narzędzie do implementacji w wy prezentacji

Szkolenie. IBM Lotus - Podstawy projektowania aplikacji w Domino Designer 8.5. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Dokument Detaliczny Projektu

Cele. Definiowanie wyzwalaczy

Aplikacje WWW - laboratorium

Analiza i projektowanie aplikacji Java

Aplikacje internetowe - laboratorium

EJB 3.0 (Enterprise JavaBeans 3.0)

Program szkolenia: Symfony, nowoczesny framework PHP

Java Server Faces - wprowadzenie

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

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Infrastruktura aplikacji WWW

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Podstawowe informacje o technologii Java Persistence API - przykład

Hurtownie danych - przegląd technologii

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

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

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

REFERAT O PRACY DYPLOMOWEJ

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Microsoft SQL Server Podstawy T-SQL

Forum Client - Spring in Swing

Spring Framework - wprowadzenie i zagadnienia zaawansowane

OfficeObjects e-forms

JavaServer Faces (JSF)

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Programowanie obiektowe

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Wykład 1 Inżynieria Oprogramowania

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Java Persistence API - zagadnienia zaawansowane

Aplikacje Internetowe, Servlety, JSP i JDBC

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Oracle11g: Wprowadzenie do SQL

15. Funkcje i procedury składowane PL/SQL

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Programowanie Obiektowe GUI

Wprowadzenie do technologii Business Intelligence i hurtowni danych

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Tworzenie bazy danych na przykładzie Access

Programowanie komponentowe 5

Technologie internetowe ASP.NET Core. Paweł Rajba

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

3. Budowa prostych raportów opartych o bazę danych

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Podstawowe wykorzystanie Hibernate

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

Oracle Designer. Oracle Designer jest jednym z głównych komponentów pakietu Oracle Developer Suite. Oracle Designer wspiera :

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

JSF 1.2. w wykonaniu NetBeans IDE 6.1. Jacek Laskowski

7. Formularze master-detail

Założenia projektowe dla zapytania ofertowego EAK_ZA_01/2015

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

Transkrypt:

352 Tworzenie aplikacji J2EE w oparciu o Oracle Application Development Framework (ADF)

Plan prezentacji 353 Architektura i technologie składowe Oracle ADF ADF Business Components jako warstwa logiki biznesowej Tworzenie aplikacji webowych w technologiach: ADF Business Components + JSP + Struts ADF Business Components + JSF + ADF Faces Podsumowanie

Architektura Oracle ADF 354

Oracle Application Development Framework (ADF) 355 Ukrywa złożoność J2EE oferując wizualne środowisko projektowe Zwiększa produktywność programisty typowa funkcjonalność jest już zaimplementowana programiści skupiają się na kodzie specyficznym dla danej aplikacji Oparty o uznane wzorce projektowe dla J2EE np. architektura Model-View-Controller dla aplikacji webowych Jest wynikiem ewolucji i integracji technologii dostępnych we wcześniejszych wersjach JDeveloper BC4J -> ADF Business Components, UIX -> ADF Faces

Zalety Oracle ADF 356 Dostępność narzędzia wspierającego framework: JDeveloper 10g Swoboda wyboru technologii ADF dla każdej z warstw wspiera różne technologie Kompleksowość oferowanych rozwiązań Obejmuje wszystkie warstwy aplikacji Uwzględnia wszystkie fazy rozwoju oprogramowania Niezależność od platformy Możliwość instalacji na dowolnym serwerze J2EE JDeveloper oferuje kreator instalacji ADF runtime dla popularnych serwerów J2EE

Warstwy Oracle ADF 357 Web & Wireless Clients Rich Clients Controller Model Business Services Business Services warstwa oferująca dostęp do różnych źródeł danych i obsługująca logikę biznesową Model warstwa abstrakcji zapewniająca spójne mechanizmy współpracy warstw View i Controller z różnymi implementacjami Business Services Controller obsługuje przepływ sterowania w aplikacji webowej View dostarcza interfejs użytkownika

Architektura Oracle ADF 358 * Schemat z Oracle ADF Developer s Guide

Moduły Oracle ADF 359 Oracle ADF Model Kluczowy element ADF Oferuje ujednolicone podejście do deklaratywnego wiązania różnych interfejsów użytkownika z różnymi usługami biznesowymi z różnymi Implementuje Data Control specyfikację JSR-227 dotyczącą warstwy abstrakcji usług biznesowych Oracle ADF Controller Integruje Struts i JSF z Oracle ADF Model Oracle ADF Faces Biblioteka komponentów JSF Oracle ADF Swing Rozszerzenie ADF Model dla aplikacji Swing Oracle ADF Business Components Upraszcza implementację usług biznesowych, szczególnie twórcom aplikacji korzystających wcześniej z 4GL (np. Oracle Forms)

Szablony aplikacji w JDeveloper 10g (10.1.3) 360 Szablon rozumiany jako wybór technologii Zwiększenie przejrzystości przez ograniczenie wyboru Szablony dostarczane jedynie dla wygody Gotowe szablony: Web Application: JSF, EJB, Toplink Web Application: JSF, ADF Business Components Web Application: JSF, EJB Web Application: JSP, Struts, ADF Business Components Java Application: ADF Swing, ADF Business Components Java Application: Java, Swing/JFC No Template: wszystkie technologie

ADF Zalecane zestawy technologii 361 Zalecany szablon dla programistów J2EE i nowych aplikacji: Business Services: EJB Session + Oracle Toplink Controller: JSF View: JSF + ADF Faces Zalecany szablon dla programistów migrujących z Oracle Forms: Business Services: ADF Business Components Controller: JSF View: JSF +ADF Faces W poprzednich wersjach JDevelopera wybrane szablony były oznaczone jako domyślne 10.1.2: Web Application [Default] (JSP, Struts, ADF BC) 10.1.3 Preview & EA: Web Application [Default] (JSF, JSP, ADF BC) 10.1.3: brak wskazania domyślnych szablonów

ADF Przykładowa aplikacja 362 Model Controller View

JDeveloper 10g: Kroki tworzenia aplikacji webowej opartej o ADF 363 1) Utworzenie aplikacji Typowo z wybraniem jednego z szablonów 2) Zaprojektowanie warstwy usług biznesowych dla modelu Gdy usługi biznesowe w innej technologii niż ADF Business Components to dodatkowo utworzenie kontrolek danych 3) Zaprojektowanie przepływu sterowania dla kontrolera 4) Utworzenie stron - widoków

364 ADF Business Components jako warstwa logiki biznesowej

Tworzenie nowej aplikacji wg szablonu obejmującego ADF Business Components Wskazanie nazwy aplikacji, katalogu i szablonu 365 Powstają 2 projekty: Model i ViewController

Tworzenie komponentów w biznesowych opartych o tabele bazy danych (1/6) 366 Uruchomienie kreatora

Tworzenie komponentów w biznesowych opartych o tabele bazy danych (2/6) 367 Wybór połączenia z bazą danych Wybór tabel, które mają być reprezentowane jako obiekty encyjne

Tworzenie komponentów w biznesowych opartych o tabele bazy danych (3/6) 368 Wybór obiektów encyjnych, dla których mają zostać utworzone modyfikowalne widoki Wybór obiektów encyjnych, dla których mają zostać utworzone widoki tylko do odczytu

Tworzenie komponentów w biznesowych opartych o tabele bazy danych (4/6) Opcjonalne utworzenie domyślnego modułu aplikacji Domyślny moduł aplikacji zawiera wszystkie obiekty encyjne i widoki Domyślny moduł aplikacji umożliwia przetestowanie utworzonych komponentów Na potrzeby aplikacji zalecane jest utworzenie specjalizowanych ( odchudzonych ) modułów aplikacji 369

Tworzenie komponentów w biznesowych opartych o tabele bazy danych (5/6) 370 Opcjonalne utworzenie diagramu UML komponentów biznesowych Obiekty encyjne Widoki Moduł aplikacji

Tworzenie komponentów w biznesowych opartych o tabele bazy danych (6/6) 371 Efekt działania kreatora: Obiekty encyjne, widoki i opcjonalnie domyślny moduł aplikacji Asocjacje między obiektami encyjnymi dla encji powstałych z tabel powiązanych relacją klucza obcego Linki między widokami prezentującymi dane z obiektów encyjnych powiązanych asocjacjami

Rodzaje komponentów w biznesowych 372 Obiekty encyjne (Entity Objects) Reprezentują dane Odpowiadają za walidację i trwałość danych Widoki (View Objects) Udostępniają dane dla aplikacji Filtrują i zmieniają sposób prezentacji danych Moduły aplikacji (Application Modules) Publikują widoki dla aplikacji Odpowiadają za zarządzanie transakcjami

Obiekty encyjne (Entity Objects) 373 Reprezentują model biznesowy: Dane Reguły biznesowe: walidacja danych Jeden obiekt encyjny odpowiada jednej tabeli Obiekty encyjne mogą być powiązane asocjacjami Reprezentującymi zależności klucza obcego Umożliwiającymi dostęp do związanych encji

Obiekty encyjne - pliki 374 Generowane domyślnie: Emp.xml (obowiązkowy) - metadane o komponencie EmpImpl.java (opcjonalny) - dziedziczy z EntityImpl Reprezentuje wiersze Zawiera metody setter/getter dla atrybutów Generowane opcjonalnie: EmpDefImpl.java dziedziczy z EntityDefImpl Opisuje wszystkie instancje encji Wykorzystywana gdy konieczne modyfikacje metadanych w trakcie pracy aplikacji EmpCollImpl.java dziedziczy z EntityCollImpl Reprezentuje cache dla wierszy encji Niegenerowana gdyż domyślny mechanizm jest odpowiedni

Wybór r generowanych plików 375 W ramach edycji obiektu encyjnego można zadecydować o generacji opcjonalnych plików Java Dla klasy EntityImpl można wskazać, które metody mają się w niej pojawić Domyślnie metody setter/getter dla atrybutów Jeśli chcemy nadawać domyślne wartości atrybutom należy wskazać metodę create()

ADF BC Pobieranie identyfikatorów z sekwencji (1/2) 376 Utworzenie w bazie danych sekwencji i wyzwalacza CREATE SEQUENCE emp_seq START WITH 8001 INCREMENT BY 1; CREATE TRIGGER empno_trigger BEFORE INSERT ON emp FOR EACH ROW BEGIN IF (:NEW.empno IS NULL) THEN SELECT emp_seq.nextval INTO :NEW.empno FROM dual; END IF; END; /

ADF BC Pobieranie identyfikatorów z sekwencji (2/2) 377 Zmiana typu atrybutu obiektu encyjnego na DBSequence

ADF BC Walidacja danych (1/2) 378 Na poziomie obiektu encyjnego CompareValidator ListValidator RangeValidator MethodValidator

ADF BC Walidacja danych (2/2) 379 Walidacja poprzez domeny Utworzenie nowego typu danych domeny Wymuszającego odpowiedni format Specyfikującego dopuszczalne wartości Format/dopuszczalne wartości określa metoda validate(), której zadaniem jest generowanie wyjątku przy błędnych danych Wykorzystanie domeny jako typu danych dla atrybutu Mechanizm dla walidacji różnych atrybutów różnych encji

Asocjacje (1/2) 380 Umożliwiają dostęp do powiązanych obiektów encyjnych (poprzez opcjonalne metody dostępu) Oparte lub nie o ograniczenia w bazie danych Typy asocjacji: Związek asocjacji encje powiązane luźno, mogą istnieć niezależnie Związek kompozycji encja docelowa w pełni zależna od źródłowej, nie może wystąpienie encji docelowej istnieć bez powiązania z wystąpieniem encji źródłowej Usunięcie wystąpienia encji źródłowej powoduje usunięcie powiązanych z nią wystąpień encji docelowej

Asocjacje (2/2) 381 Metody dostępu: W Emp: setdept(...), getdept() zwraca DeptImpl W Dept: getemp() zwraca RowIterator

Widoki (View( Objects) 382 Udostępniają dane aplikacjom Można je do stroić do wymagań aplikacji poprzez: Wybór atrybutów Dodanie atrybutów wyliczeniowych Dodanie klauzul WHERE i ORDER BY Oparcie o kilka obiektów encyjnych (JOIN) Mogą być powiązane linkami reprezentującymi zależności Master-Detail

Widoki - pliki 383 Generowane domyślnie: EmpView.xml (obowiązkowy) metadane o komponencie EmpViewImpl.java (opcjonalny) - dziedziczy z ViewObjectImpl Reprezentuje widok Zawiera dodane metody biznesowe Generowane opcjonalnie: EmpViewRowImpl.java (opcjonalny) dziedziczy z ViewRowImpl Reprezentuje wiersze widoku Zawiera metody setter/getter dla atrybutów EmpDefImpl.java dziedziczy z ViewDefImpl reprezentuje metadane w trakcie pracy aplikacji

View Objects a widoki interfejsu użytkownika 384 ViewObjects stanowią część warstwy Business Services! Typowo View Object jest wykorzystywany jako źródło danych dla strony w warstwie View View Object może być również wykorzystany do wydawania "w tle" pomocniczego zapytania na żądanie!

Edycja właściwow ciwości widoków 385 Modyfikacja klauzul WHERE i ORDER BY W trybie eksperckim możliwa swobodna edycja zapytania, ale problem z mapowaniem atrybutów Możliwość parametryzacji (styl? Lub :1)

Atrybuty wyliczeniowe 386 Przykład: całkowite zarobki pracownika (SAL + COMM)

Widoki tylko do odczytu 387 Nieoparte o encje tylko o jawnie podane zapytanie SQL Jeśli widok nie będzie służył do modyfikacji danych, (np. widok dla LOV) oparcie go o zapytanie SQL z pominięciem encji zwiększa efektywność

Współpraca praca widoków w i obiektów encyjnych 388 Odczyt danych Odczyt bezpośrednio z bazy danych Atrybuty bazowe buforowane i walidowane w encjach BD EO getxxx() VO Modyfikacja danych Widok modyfikuje cache obiektu encyjnego Obiekt encyjny modyfikuje stan bazy danych BD EO setxxx() VO

Moduły y aplikacji (Application( Modules) 389 Publikują widoki dla aplikacji Aplikacja "łączy się" z modułem apl. Widok aby był dostępny musi być w module aplikacji Obsługują transakcje Każdy moduł powinien zawierać komponenty (encje i widoki) niezbędne do realizacji konkretnego zadania Im mniejszy moduł tym większa efektywność Moduły można zagnieżdżać (modularność!) Za obsługę transakcji odpowiada moduł nadrzędny

Moduły y aplikacji - pliki 390 Generowane domyślnie: AppModule.xml (obowiązkowy) - metadane o komponencie AppModuleImpl.java (opcjonalny) - dziedziczy z ApplicationModuleImpl Reprezentuje moduł Zawiera dodane metody biznesowe Generowany opcjonalnie: AppModuleDefImpl.java dziedziczy z ApplicationModuleDefImpl reprezentuje metadane w trakcie pracy aplikacji

Edycja modułu u aplikacji 391 Dodawanie/usuwanie komponentów Ewentualne dodawanie modułów zagnieżdżonych

Dodawanie metod biznesowych 392 Do realizacji specyficznych zadań można utworzyć dodatkowe metody biznesowe Należy przemyśleć, na jakim poziomie metoda powinna być dodana Na poziomie obiektów encyjnych: Metody wykorzystywane w walidacji, nieudostępniane klientom Na poziomie obiektów widoków: Metody użyteczne dla wszystkich klientów korzystających z danego widoku Na poziomie modułów aplikacji: Metody specyficzne dla modułu aplikacji

Testowanie komponentów w biznesowych w JDeveloper (1/2) JDeveloper umożliwia przetestowanie komponentów biznesowych w oderwaniu od konkretnego interfejsu narzędziem BC Browser Ułatwia lokalizację błędów Umożliwia przeglądanie i edycję poprzez widoki, obserwację działania linków między widokami Nie pozwala na uruchamianie dodanych metod 393

Testowanie komponentów w biznesowych w JDeveloper (2/2) 394 Przeglądanie widoku w oddzielnym oknie

395 Tworzenie aplikacji webowej MVC opartej o komponenty biznesowe, JSP i Struts

Wykorzystywane technologie 396 * Schemat z Oracle ADF Developer s Guide

Struts: : Diagram przepływu miedzy stronami 397 JDeveloper 10g ułatwia korzystanie ze Struts poprzez diagramy przepływu sterowania ADF oferuje 2 niestandardowe komponenty: DataPage kombinacja DataAction i PageForward; dla stron korzystających z danych modelu DataAction akcja wywołująca metody z warstwy Business Services

Tworzenie stron JSP widoków w (1/8) 398 Dwuklik na ikonie strony Dodawanie komponentów ADF reprezentujących dane Po umieszczeniu (drag&drop) elementu modelu na stronie, pojawia się okienko z wyborem sposobu prezentacji

Tworzenie stron JSP widoków w (2/8) Źródło JSP 399 <%@ page contenttype="text/html;charset=windows-1250"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%> <html> <head>...</head> <body> <html:errors/> <table border="1" width="100%"> <tr> <th> <c:out value="${bindings.empview1.labels[\'empno\']}"/> </th>... </tr> <c:foreach var="row" items="${bindings.empview1.rangeset}"> <tr> <td> <c:out value="${row.currencystring}"/> </td> <td> <c:out value="${row[\'empno\']}"/> <br/> </td>... </c:foreach> </table> </body> </html>

Tworzenie stron JSP widoków w (3/8) 400 Uruchomienie Koniecznie z diagramu Struts! (aby poprzez kontroler) Efekt działania

Tworzenie stron JSP widoków w (4/8) 401 Dodanie przycisków do nawigacji po wynikach zapytania

Tworzenie stron JSP widoków w (5/8) 402 Przyciski nawigacyjne kod i efekt działania <html:form action="/browseemp.do"> <html:hidden property="${bindings.statetokenid}" value="${bindings.statetoken}"/> <html:submit property="event_previousset" value="previousset" disabled="${!bindings.previousset.enabled}"/> <html:submit property="event_nextset" value="nextset" disabled="${!bindings.nextset.enabled}"/> </html:form> Wskaźnik bieżącego wiersza

Tworzenie stron JSP widoków w (6/8) 403 Formatka do edycji

Tworzenie stron JSP widoków w (7/8) 404 Zmiana własności przycisków Etykiety Aktywność <html:submit property="event_commit" value="ok" disabled="${!bindings.commit.enabled}"/> <html:submit property="event_rollback" value="anuluj" disabled="${!bindings.rollback.enabled}"/> Definicja nawigacji w odpowiedzi na zdarzenia Predefiniowane np. Commit, Rollback Aplikacji np. Edit

Tworzenie stron JSP widoków w (8/8) 405 Zmiana bieżącego wiersza Generacja zdarzeń aplikacji Ręczna edycja <html:link href="browseemp.do? event=setcurrentrowwithkey &rowkey=${row.rowkeystr}&event=edit"> Edit </html:link>

Efekty walidacji na poziomie komponentów w biznesowych 406 ApplicationResources.properties... errors.header=<h3><font color\="red"> Niepoprawne dane</font></h3> Musisz poprawi\u0107 poni\u017csze b\u0142\u0119dy\:<ul>... <html:errors/>... editemp.jsp

Tworzenie formularzy master-detail 407 Strony oparte o View Objects powiązane linkiem Dla /displaydept Dla /displayemp Link "Details" należy oprogramować by generował zdarzenie "Details" i zmieniał bieżący wiersz

408 Tworzenie aplikacji webowej MVC opartej o komponenty biznesowe, JSF i ADF Faces

Wykorzystywane technologie 409 * Schemat z Oracle ADF Developer s Guide

Czym jest ADF Faces? 410 Technologia tworzenia widoków w Oracle Application Development Framework (ADF) Bogata biblioteka komponentów interfejsu użytkownika oparta o JSF Port ADF UIX Technologii widoków specyficznej dla Oracle (obecnie zarzuconej) Cechującej się bogactwem zaawansowanych komponentów Wspierającej różne typy urządzeń Wykorzystywanej przez Oracle (np. Enterprise Manager) Wraz z Oracle JDeveloper 10g (10.1.3) API zostało zamrożone Współpracują z implementacjami JSF JSF RI 1.1 lub nowsza Apache MyFaces 1.0.8 lub nowsza W styczniu 2006 podarowane Apache Software Foundation Wspierane przez wizualne edytory w JDeveloper 10.1.3 Oracle pracuje również nad pełnym wsparciem ADF Faces w Eclipse

Zalety ADF Faces w porównaniu ze standardowymi JSF 411 Bogaty zestaw zaawansowanych komponentów interfejsu użytkownika, konwerterów i walidatorów W tym konwertery/walidatory wykorzystujące JavaScript do wczesnej walidacji po stronie klienta Wsparcie dla mechanizmu file upload Wsparcie dla okienek dialogowych Zastępniki dla standardowych znaczników oferujące większą funkcjonalność Większa wydajność Np. w zakresie zachowywania stanu (po stronie klienta i serwera) Integracja z Oracle ADF Partial Page Rendering (w stylu AJAX!) UWAGA: Znaczniki ADF Faces <af: > <afh: > można mieszać (z pewnymi ograniczeniami) ze standardowymi

ADF Faces Przykłady komponentów 412 <af:panelpage> <af:choosecolor> <af:table> <af:processtrain> < af:choosedate > <af:commandbutton> <af:selectordershuttle> <af:selectrangechoicebar> <af:menubar> <af:menutabs>

Tworzenie stron JSF widoków w (1/5) 413 Tworzenie strony-widoku JSF JSP + ADF Faces Edytor wizualny Elementy z modelu wybierane z Data Control Palette Dla kontrolek reprezentujących View Objects z ADF Business Components, oprócz opcji prezentacji pojedynczych widoków (jak dla JSP), możliwość prezentacji widoków master-detail na jednej stonie Widok zagnieżdżony może stanowić model dla formularza master-detail

Tworzenie stron JSF widoków w (2/5) 414 Wybór sposobu prezentacji danych z modelu Po umieszczeniu (drag&drop) elementu modelu na stronie, pojawia się okienko z wyborem sposobu prezentacji

Tworzenie stron JSF widoków w (3/5) 415 Wynik działania kreatora (edytor wizualny)

Tworzenie stron JSF widoków w (4/5) 416 Wynik działania kreatora (fragment kodu źródłowego strony) <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%> <%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%> <f:view> <afh:html> <afh:head title="empdept"> <meta http-equiv="content-type"... content="text/html; charset=windows-1250"/> </afh:head> <afh:body> <af:messages/> <h:form> <af:panelgroup layout="vertical"> <af:panelheader text="deptview1"> <af:panelform> <af:inputtext value="#{bindings.deptno.inputvalue}" label="#{bindings.deptno.label}" readonly="true"/> <af:inputtext value="#{bindings.dname.inputvalue}" label="#{bindings.dname.label}" readonly="true"/> <af:inputtext value="#{bindings.loc.inputvalue}" label="#{bindings.loc.label}" readonly="true"/> Odwołania do modelu poprzez bindings

Tworzenie stron JSF widoków w (5/5) 417 Działająca aplikacja

Podsumowanie 418

Oracle ADF - Podsumowanie 419 Odpowiedni szkielet aplikacji (framework) jest kluczem do osiągnięcia satysfakcjonującej produktywności projektantów aplikacji J2EE Zalety Oracle ADF: Oparty o uznane wzorce projektowe i technologie Daje swobodę wyboru technologii Niezależny od platformy (przenaszalny) Wspierany przez wygodne narzędzie JDeveloper 10g Dwa zalecane przez Oracle zestawy technologii: Dla programistów J2EE: EJB+Toplink, JSF, ADF Faces Dla programistów migrujących z Oracle Forms: ADF Business Components, JSF, ADF Faces