Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek...
Transcript of Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek...
Tytuł oryginału Java EE 6 Development with NetBeans 7
Tłumaczenie Tomasz Walczak
ISBN 978-83-246-8936-1
Copyright copy 2011 Packt Publishing
First published in the English language under the title lsquoJava EE 6 Development with NetBeansrsquo
copy Helion 2014All rights reserved
All rights reserved No part of this book may be reproduced or transmitted in any form or by any means electronic or mechanical including photocopying recording or by any information storage retrieval system without permission from the Publisher
Wszelkie prawa zastrzeżone Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione Wykonywanie kopii metodą kserograficzną fotograficzną a także kopiowanie książki na nośniku filmowym magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań by zawarte w tej książce informacje były kompletne i rzetelne Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich Wydawnictwo HELION nie ponosi roacutewnież żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce
Wydawnictwo HELIONul Kościuszki 1c 44-100 GLIWICEtel 32 231 22 19 32 230 98 63e-mail helionhelionplWWW httphelionpl (księgarnia internetowa katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem ftpftphelionplprzykladyjave6nzip
Drogi CzytelnikuJeżeli chcesz ocenić tę książkę zajrzyj pod adres httphelionpluseropiniejave6nMożesz tam wpisać swoje uwagi spostrzeżenia recenzję
Printed in Poland
bull Kup książkębull Poleć książkę bull Oceń książkę
bull Księgarnia internetowabull Lubię to raquo Nasza społeczność
Spis tre ci
O autorze 7
O recenzentach 9
Przedmowa 11
Rozdzia 1 Wprowadzenie do rodowiska NetBeans 15
Wprowadzenie 15Pobieranie rodowiska NetBeans 16Instalowanie rodowiska NetBeans 19Pierwsze uruchomienie rodowiska NetBeans 26Konfigurowanie rodowiska NetBeans pod k tem programowania w Javie EE 27Instalowanie pierwszej aplikacji 35Wskazoacutewki dotycz ce wydajnego programowania w rodowisku NetBeans 38Podsumowanie 49
Rozdzia 2 Tworzenie aplikacji sieciowychz wykorzystaniem serwletoacutew i technologii JSP 51
Tworzenie pierwszej aplikacji 52Programowanie serwletoacutew 72Zabezpieczanie aplikacji sieciowych 81Fragmenty JSP 93Podsumowanie 96
Rozdzia 3 Wzbogacanie stron JSP za pomoc biblioteki JSTLi niestandardowych znacznikoacutew 97
Podstawowe znaczniki JSTL 98SQL-owe znaczniki JSTL 107Modyfikowanie danych w bazie za pomoc znacznika ltsqlupdategt 114Ostatnie uwagi na temat biblioteki JSTL 122Niestandardowe znaczniki JSP 122Podsumowanie 129
Kup książkę Poleć książkę
Spis tre ci
4
Rozdzia 4 Tworzenie aplikacji sieciowychz wykorzystaniem platformy JavaServer Faces 20 131
Wprowadzenie do platformy JSF 132Tworzenie pierwszej aplikacji JSF 132Tworzenie szablonoacutew faceletoacutew 152Komponenty z o one 159Podsumowanie 164
Rozdzia 5 Tworzenie eleganckich aplikacji sieciowychz wykorzystaniem biblioteki PrimeFaces 165
Pierwszy projekt utworzony z wykorzystaniem biblioteki PrimeFaces 165Stosowanie komponentoacutew PrimeFaces w aplikacjach JSF 169Widoki z zak adkami 173Interfejsy oparte na kreatorze 178Dodatkowe informacje 183Podsumowanie 183
Rozdzia 6 Interakcja z bazami danych za pomoc interfejsu Java Persistence API 185
Tworzenie pierwszej encji JPA 186Automatyczne generowanie encji JPA 200Relacje mi dzy encjami 209Generowanie aplikacji JSP na podstawie encji JPA 215Podsumowanie 221
Rozdzia 7 Implementowanie warstwy biznesowej za pomoc ziaren sesyjnych 223
Wprowadzenie do ziaren sesyjnych 224Tworzenie ziaren sesyjnych w rodowisku NetBeans 224Dost p do ziarna z poziomu klienta 233Zarz dzanie transakcjami w ziarnach sesyjnych 238Programowanie aspektowe z wykorzystaniem interceptoroacutew 239Us ugi zegara w ziarnach EJB 242Generowanie ziaren sesyjnych na podstawie encji JPA 244Podsumowanie 248
Rozdzia 8 Interfejs API CDI 249
Wprowadzenie do CDI 249Kwalifikatory 256Stereotypy 260Typy do wi zania interceptoroacutew 263Podsumowanie 267
Kup książkę Poleć książkę
Spis tre ci
5
Rozdzia 9 Przesy anie komunikatoacutew za pomoc us ug JMSi ziaren sterowanych komunikatami 269
Wprowadzenie do interfejsu JMS 270Tworzenie projektu i zasoboacutew JMS 271Przetwarzanie komunikatoacutew JMS za pomoc ziaren sterowanych komunikatami 280Podsumowanie 283
Rozdzia 10 Us ugi sieciowe SOAP oparte na interfejsie JAX-WS 285
Wprowadzenie do us ug sieciowych 285Tworzenie prostej us ugi sieciowej 286Udost pnianie ziaren EJB jako us ug sieciowych 298Podsumowanie 305
Rozdzia 11 Us ugi sieciowe RESTful oparte na interfejsie JAX-RS 307
Generowanie us ug sieciowych typu RESTful na podstawie istniej cej bazy danych 308Testowanie us ug sieciowych typu RESTful 314Tworzenie klienta us ug sieciowych typu RESTful 319Podsumowanie 325
Dodatek A Debugowanie aplikacji dla firmza pomoc debugera rodowiska NetBeans 327
Debugowanie aplikacji dla firm 327Podsumowanie 333
Dodatek B Wykrywanie problemoacutew z wydajno ciza pomoc profilera rodowiska NetBeans 335
Profilowanie aplikacji 335Podsumowanie 339
Skorowidz 341
Kup książkę Poleć książkę
Spis tre ci
6
Kup książkę Poleć książkę
5
Tworzenie eleganckichaplikacji sieciowych
z wykorzystaniembiblioteki PrimeFaces
Jedn z zalet platformy JSF jest to e umo liwia bardzo atwe tworzenie niestandardowychkomponentoacutew Dlatego powsta o kilka bibliotek komponentoacutew o otwartym dost pie do koduroacuted owego Jedn z nich jest biblioteka PrimeFaces Umo liwia ona atwe tworzenie ele-
ganckich aplikacji sieciowych W wersji 70 rodowiska NetBeans dost pna jest wbudowanabiblioteka PrimeFaces
Pierwszy projekt utworzonyz wykorzystaniem biblioteki PrimeFacesAby zastosowa bibliotek PrimeFaces w projekcie trzeba w standardowy sposoacuteb utworzyaplikacj sieciow w Javie Gdy wybierzesz platform JavaServer Faces kliknij zak adk Com-ponents a nast pnie wybierz pozycj PrimeFaces 221 jako pakiet komponentoacutew (rysunek 51)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
166
Rysunek 51 Tworzenie aplikacji z bibliotek PrimeFaces
Po utworzeniu projektu rodowisko NetBeans doda potrzebne biblioteki Na stronach JSFdost pny wtedy b dzie mechanizm automatycznego uzupe niania projektu dla znacznikoacutewbiblioteki PrimeFaces
Je li wybierzesz PrimeFaces jako pakiet komponentoacutew dla projektu JSF rodowisko NetBeansutworzy przyk adowy projekt u ywaj cy komponentoacutew PrimeFaces Kod wygenerowanego plikuwygl da tak
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtmlgt lthheadgt lttitlegtFacelet Titlelttitlegt lthheadgt lthbodygt lthformgt ltpcommandButton value=Hello from PrimeFaces onclick=dlg1show() type=button gt ltpdialog header=PrimeFaces Dialog widgetVar=dlg1 width=500gt For more information visit lta href=httpprimefaces
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
167
orggthttpprimefacesorgltagt ltpdialoggt lthformgt lthbodygtlthtmlgt
Strona ta wygl da prawie jak zwyk a strona faceletu Wyj tkiem jest kilka komponentoacutew cha-rakterystycznych dla biblioteki PrimeFaces
Zwroacute uwag na to e przestrze nazw biblioteki PrimeFaces (xmlnsp=httpprimefacesprimecomtrui) jest automatycznie dodawana do znacznika lthtmlgt Ta przestrze nazw jest
niezb dna do stosowania komponentoacutew PrimeFaces na stronach Zgodnie z konwencj znacznikiPrimeFaces maj przedrostek p
Pierwszy komponent PrimeFaces na przedstawionej stronie to ltpcommandButtongt Jest on podobnydo standardowego komponentu przycisku polecenia JSF jednak ma pewne dodatkowe zalety (naprzyk ad wygl da elegancko bez konieczno ci r cznego dodawania arkusza styloacutew CSS)
Inny komponent PrimeFaces na przyk adowej stronie to ltpdialoggt Komponent ten jest wy-wietlany jako okno dialogowe ktoacutere mo e znajdowa si nad innymi komponentami strony
Za pomoc warto ci atrybutu widgetVer mo na uzyska dost p do tego komponentu w innychkomponentach ze strony Okno dialogowe udost pnia w tym celu dzia aj cy po stronie klientainterfejs API JavaScriptu Najcz ciej u ywane funkcje tego interfejsu API to show() i hide()S u one do wy wietlania i ukrywania okna dialogowego na stronie Ten interfejs API wykorzy-stano w atrybucie onclick wspomnianego wcze niej przycisku polecenia
Gdy uruchomisz aplikacj zobaczysz automatycznie wygenerowan stron (rysunek 52)
Rysunek 52 Automatycznie wygenerowana strona
Po klikni ciu przycisku pojawi si okno dialogowe (rysunek 53)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
168
Rysunek 53 Okno dialogowe wy wietlane w odpowiedzi na klikni cie przycisku
Gdy klikniesz odno nik w oknie dialogowym przejdziesz do witryny biblioteki PrimeFaces(rysunek 54)
Rysunek 54 Witryna po wi cona bibliotece PrimeFaces
Jak wida biblioteka PrimeFaces umo liwia tworzenie eleganckich aplikacji sieciowych ma ymnak adem si Dalej zobaczysz jak wykorzysta niektoacutere komponenty PrimeFaces aby znacznieu atwi i upro ci proces tworzenia aplikacji sieciowych
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Spis tre ci
O autorze 7
O recenzentach 9
Przedmowa 11
Rozdzia 1 Wprowadzenie do rodowiska NetBeans 15
Wprowadzenie 15Pobieranie rodowiska NetBeans 16Instalowanie rodowiska NetBeans 19Pierwsze uruchomienie rodowiska NetBeans 26Konfigurowanie rodowiska NetBeans pod k tem programowania w Javie EE 27Instalowanie pierwszej aplikacji 35Wskazoacutewki dotycz ce wydajnego programowania w rodowisku NetBeans 38Podsumowanie 49
Rozdzia 2 Tworzenie aplikacji sieciowychz wykorzystaniem serwletoacutew i technologii JSP 51
Tworzenie pierwszej aplikacji 52Programowanie serwletoacutew 72Zabezpieczanie aplikacji sieciowych 81Fragmenty JSP 93Podsumowanie 96
Rozdzia 3 Wzbogacanie stron JSP za pomoc biblioteki JSTLi niestandardowych znacznikoacutew 97
Podstawowe znaczniki JSTL 98SQL-owe znaczniki JSTL 107Modyfikowanie danych w bazie za pomoc znacznika ltsqlupdategt 114Ostatnie uwagi na temat biblioteki JSTL 122Niestandardowe znaczniki JSP 122Podsumowanie 129
Kup książkę Poleć książkę
Spis tre ci
4
Rozdzia 4 Tworzenie aplikacji sieciowychz wykorzystaniem platformy JavaServer Faces 20 131
Wprowadzenie do platformy JSF 132Tworzenie pierwszej aplikacji JSF 132Tworzenie szablonoacutew faceletoacutew 152Komponenty z o one 159Podsumowanie 164
Rozdzia 5 Tworzenie eleganckich aplikacji sieciowychz wykorzystaniem biblioteki PrimeFaces 165
Pierwszy projekt utworzony z wykorzystaniem biblioteki PrimeFaces 165Stosowanie komponentoacutew PrimeFaces w aplikacjach JSF 169Widoki z zak adkami 173Interfejsy oparte na kreatorze 178Dodatkowe informacje 183Podsumowanie 183
Rozdzia 6 Interakcja z bazami danych za pomoc interfejsu Java Persistence API 185
Tworzenie pierwszej encji JPA 186Automatyczne generowanie encji JPA 200Relacje mi dzy encjami 209Generowanie aplikacji JSP na podstawie encji JPA 215Podsumowanie 221
Rozdzia 7 Implementowanie warstwy biznesowej za pomoc ziaren sesyjnych 223
Wprowadzenie do ziaren sesyjnych 224Tworzenie ziaren sesyjnych w rodowisku NetBeans 224Dost p do ziarna z poziomu klienta 233Zarz dzanie transakcjami w ziarnach sesyjnych 238Programowanie aspektowe z wykorzystaniem interceptoroacutew 239Us ugi zegara w ziarnach EJB 242Generowanie ziaren sesyjnych na podstawie encji JPA 244Podsumowanie 248
Rozdzia 8 Interfejs API CDI 249
Wprowadzenie do CDI 249Kwalifikatory 256Stereotypy 260Typy do wi zania interceptoroacutew 263Podsumowanie 267
Kup książkę Poleć książkę
Spis tre ci
5
Rozdzia 9 Przesy anie komunikatoacutew za pomoc us ug JMSi ziaren sterowanych komunikatami 269
Wprowadzenie do interfejsu JMS 270Tworzenie projektu i zasoboacutew JMS 271Przetwarzanie komunikatoacutew JMS za pomoc ziaren sterowanych komunikatami 280Podsumowanie 283
Rozdzia 10 Us ugi sieciowe SOAP oparte na interfejsie JAX-WS 285
Wprowadzenie do us ug sieciowych 285Tworzenie prostej us ugi sieciowej 286Udost pnianie ziaren EJB jako us ug sieciowych 298Podsumowanie 305
Rozdzia 11 Us ugi sieciowe RESTful oparte na interfejsie JAX-RS 307
Generowanie us ug sieciowych typu RESTful na podstawie istniej cej bazy danych 308Testowanie us ug sieciowych typu RESTful 314Tworzenie klienta us ug sieciowych typu RESTful 319Podsumowanie 325
Dodatek A Debugowanie aplikacji dla firmza pomoc debugera rodowiska NetBeans 327
Debugowanie aplikacji dla firm 327Podsumowanie 333
Dodatek B Wykrywanie problemoacutew z wydajno ciza pomoc profilera rodowiska NetBeans 335
Profilowanie aplikacji 335Podsumowanie 339
Skorowidz 341
Kup książkę Poleć książkę
Spis tre ci
6
Kup książkę Poleć książkę
5
Tworzenie eleganckichaplikacji sieciowych
z wykorzystaniembiblioteki PrimeFaces
Jedn z zalet platformy JSF jest to e umo liwia bardzo atwe tworzenie niestandardowychkomponentoacutew Dlatego powsta o kilka bibliotek komponentoacutew o otwartym dost pie do koduroacuted owego Jedn z nich jest biblioteka PrimeFaces Umo liwia ona atwe tworzenie ele-
ganckich aplikacji sieciowych W wersji 70 rodowiska NetBeans dost pna jest wbudowanabiblioteka PrimeFaces
Pierwszy projekt utworzonyz wykorzystaniem biblioteki PrimeFacesAby zastosowa bibliotek PrimeFaces w projekcie trzeba w standardowy sposoacuteb utworzyaplikacj sieciow w Javie Gdy wybierzesz platform JavaServer Faces kliknij zak adk Com-ponents a nast pnie wybierz pozycj PrimeFaces 221 jako pakiet komponentoacutew (rysunek 51)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
166
Rysunek 51 Tworzenie aplikacji z bibliotek PrimeFaces
Po utworzeniu projektu rodowisko NetBeans doda potrzebne biblioteki Na stronach JSFdost pny wtedy b dzie mechanizm automatycznego uzupe niania projektu dla znacznikoacutewbiblioteki PrimeFaces
Je li wybierzesz PrimeFaces jako pakiet komponentoacutew dla projektu JSF rodowisko NetBeansutworzy przyk adowy projekt u ywaj cy komponentoacutew PrimeFaces Kod wygenerowanego plikuwygl da tak
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtmlgt lthheadgt lttitlegtFacelet Titlelttitlegt lthheadgt lthbodygt lthformgt ltpcommandButton value=Hello from PrimeFaces onclick=dlg1show() type=button gt ltpdialog header=PrimeFaces Dialog widgetVar=dlg1 width=500gt For more information visit lta href=httpprimefaces
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
167
orggthttpprimefacesorgltagt ltpdialoggt lthformgt lthbodygtlthtmlgt
Strona ta wygl da prawie jak zwyk a strona faceletu Wyj tkiem jest kilka komponentoacutew cha-rakterystycznych dla biblioteki PrimeFaces
Zwroacute uwag na to e przestrze nazw biblioteki PrimeFaces (xmlnsp=httpprimefacesprimecomtrui) jest automatycznie dodawana do znacznika lthtmlgt Ta przestrze nazw jest
niezb dna do stosowania komponentoacutew PrimeFaces na stronach Zgodnie z konwencj znacznikiPrimeFaces maj przedrostek p
Pierwszy komponent PrimeFaces na przedstawionej stronie to ltpcommandButtongt Jest on podobnydo standardowego komponentu przycisku polecenia JSF jednak ma pewne dodatkowe zalety (naprzyk ad wygl da elegancko bez konieczno ci r cznego dodawania arkusza styloacutew CSS)
Inny komponent PrimeFaces na przyk adowej stronie to ltpdialoggt Komponent ten jest wy-wietlany jako okno dialogowe ktoacutere mo e znajdowa si nad innymi komponentami strony
Za pomoc warto ci atrybutu widgetVer mo na uzyska dost p do tego komponentu w innychkomponentach ze strony Okno dialogowe udost pnia w tym celu dzia aj cy po stronie klientainterfejs API JavaScriptu Najcz ciej u ywane funkcje tego interfejsu API to show() i hide()S u one do wy wietlania i ukrywania okna dialogowego na stronie Ten interfejs API wykorzy-stano w atrybucie onclick wspomnianego wcze niej przycisku polecenia
Gdy uruchomisz aplikacj zobaczysz automatycznie wygenerowan stron (rysunek 52)
Rysunek 52 Automatycznie wygenerowana strona
Po klikni ciu przycisku pojawi si okno dialogowe (rysunek 53)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
168
Rysunek 53 Okno dialogowe wy wietlane w odpowiedzi na klikni cie przycisku
Gdy klikniesz odno nik w oknie dialogowym przejdziesz do witryny biblioteki PrimeFaces(rysunek 54)
Rysunek 54 Witryna po wi cona bibliotece PrimeFaces
Jak wida biblioteka PrimeFaces umo liwia tworzenie eleganckich aplikacji sieciowych ma ymnak adem si Dalej zobaczysz jak wykorzysta niektoacutere komponenty PrimeFaces aby znacznieu atwi i upro ci proces tworzenia aplikacji sieciowych
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Spis tre ci
4
Rozdzia 4 Tworzenie aplikacji sieciowychz wykorzystaniem platformy JavaServer Faces 20 131
Wprowadzenie do platformy JSF 132Tworzenie pierwszej aplikacji JSF 132Tworzenie szablonoacutew faceletoacutew 152Komponenty z o one 159Podsumowanie 164
Rozdzia 5 Tworzenie eleganckich aplikacji sieciowychz wykorzystaniem biblioteki PrimeFaces 165
Pierwszy projekt utworzony z wykorzystaniem biblioteki PrimeFaces 165Stosowanie komponentoacutew PrimeFaces w aplikacjach JSF 169Widoki z zak adkami 173Interfejsy oparte na kreatorze 178Dodatkowe informacje 183Podsumowanie 183
Rozdzia 6 Interakcja z bazami danych za pomoc interfejsu Java Persistence API 185
Tworzenie pierwszej encji JPA 186Automatyczne generowanie encji JPA 200Relacje mi dzy encjami 209Generowanie aplikacji JSP na podstawie encji JPA 215Podsumowanie 221
Rozdzia 7 Implementowanie warstwy biznesowej za pomoc ziaren sesyjnych 223
Wprowadzenie do ziaren sesyjnych 224Tworzenie ziaren sesyjnych w rodowisku NetBeans 224Dost p do ziarna z poziomu klienta 233Zarz dzanie transakcjami w ziarnach sesyjnych 238Programowanie aspektowe z wykorzystaniem interceptoroacutew 239Us ugi zegara w ziarnach EJB 242Generowanie ziaren sesyjnych na podstawie encji JPA 244Podsumowanie 248
Rozdzia 8 Interfejs API CDI 249
Wprowadzenie do CDI 249Kwalifikatory 256Stereotypy 260Typy do wi zania interceptoroacutew 263Podsumowanie 267
Kup książkę Poleć książkę
Spis tre ci
5
Rozdzia 9 Przesy anie komunikatoacutew za pomoc us ug JMSi ziaren sterowanych komunikatami 269
Wprowadzenie do interfejsu JMS 270Tworzenie projektu i zasoboacutew JMS 271Przetwarzanie komunikatoacutew JMS za pomoc ziaren sterowanych komunikatami 280Podsumowanie 283
Rozdzia 10 Us ugi sieciowe SOAP oparte na interfejsie JAX-WS 285
Wprowadzenie do us ug sieciowych 285Tworzenie prostej us ugi sieciowej 286Udost pnianie ziaren EJB jako us ug sieciowych 298Podsumowanie 305
Rozdzia 11 Us ugi sieciowe RESTful oparte na interfejsie JAX-RS 307
Generowanie us ug sieciowych typu RESTful na podstawie istniej cej bazy danych 308Testowanie us ug sieciowych typu RESTful 314Tworzenie klienta us ug sieciowych typu RESTful 319Podsumowanie 325
Dodatek A Debugowanie aplikacji dla firmza pomoc debugera rodowiska NetBeans 327
Debugowanie aplikacji dla firm 327Podsumowanie 333
Dodatek B Wykrywanie problemoacutew z wydajno ciza pomoc profilera rodowiska NetBeans 335
Profilowanie aplikacji 335Podsumowanie 339
Skorowidz 341
Kup książkę Poleć książkę
Spis tre ci
6
Kup książkę Poleć książkę
5
Tworzenie eleganckichaplikacji sieciowych
z wykorzystaniembiblioteki PrimeFaces
Jedn z zalet platformy JSF jest to e umo liwia bardzo atwe tworzenie niestandardowychkomponentoacutew Dlatego powsta o kilka bibliotek komponentoacutew o otwartym dost pie do koduroacuted owego Jedn z nich jest biblioteka PrimeFaces Umo liwia ona atwe tworzenie ele-
ganckich aplikacji sieciowych W wersji 70 rodowiska NetBeans dost pna jest wbudowanabiblioteka PrimeFaces
Pierwszy projekt utworzonyz wykorzystaniem biblioteki PrimeFacesAby zastosowa bibliotek PrimeFaces w projekcie trzeba w standardowy sposoacuteb utworzyaplikacj sieciow w Javie Gdy wybierzesz platform JavaServer Faces kliknij zak adk Com-ponents a nast pnie wybierz pozycj PrimeFaces 221 jako pakiet komponentoacutew (rysunek 51)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
166
Rysunek 51 Tworzenie aplikacji z bibliotek PrimeFaces
Po utworzeniu projektu rodowisko NetBeans doda potrzebne biblioteki Na stronach JSFdost pny wtedy b dzie mechanizm automatycznego uzupe niania projektu dla znacznikoacutewbiblioteki PrimeFaces
Je li wybierzesz PrimeFaces jako pakiet komponentoacutew dla projektu JSF rodowisko NetBeansutworzy przyk adowy projekt u ywaj cy komponentoacutew PrimeFaces Kod wygenerowanego plikuwygl da tak
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtmlgt lthheadgt lttitlegtFacelet Titlelttitlegt lthheadgt lthbodygt lthformgt ltpcommandButton value=Hello from PrimeFaces onclick=dlg1show() type=button gt ltpdialog header=PrimeFaces Dialog widgetVar=dlg1 width=500gt For more information visit lta href=httpprimefaces
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
167
orggthttpprimefacesorgltagt ltpdialoggt lthformgt lthbodygtlthtmlgt
Strona ta wygl da prawie jak zwyk a strona faceletu Wyj tkiem jest kilka komponentoacutew cha-rakterystycznych dla biblioteki PrimeFaces
Zwroacute uwag na to e przestrze nazw biblioteki PrimeFaces (xmlnsp=httpprimefacesprimecomtrui) jest automatycznie dodawana do znacznika lthtmlgt Ta przestrze nazw jest
niezb dna do stosowania komponentoacutew PrimeFaces na stronach Zgodnie z konwencj znacznikiPrimeFaces maj przedrostek p
Pierwszy komponent PrimeFaces na przedstawionej stronie to ltpcommandButtongt Jest on podobnydo standardowego komponentu przycisku polecenia JSF jednak ma pewne dodatkowe zalety (naprzyk ad wygl da elegancko bez konieczno ci r cznego dodawania arkusza styloacutew CSS)
Inny komponent PrimeFaces na przyk adowej stronie to ltpdialoggt Komponent ten jest wy-wietlany jako okno dialogowe ktoacutere mo e znajdowa si nad innymi komponentami strony
Za pomoc warto ci atrybutu widgetVer mo na uzyska dost p do tego komponentu w innychkomponentach ze strony Okno dialogowe udost pnia w tym celu dzia aj cy po stronie klientainterfejs API JavaScriptu Najcz ciej u ywane funkcje tego interfejsu API to show() i hide()S u one do wy wietlania i ukrywania okna dialogowego na stronie Ten interfejs API wykorzy-stano w atrybucie onclick wspomnianego wcze niej przycisku polecenia
Gdy uruchomisz aplikacj zobaczysz automatycznie wygenerowan stron (rysunek 52)
Rysunek 52 Automatycznie wygenerowana strona
Po klikni ciu przycisku pojawi si okno dialogowe (rysunek 53)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
168
Rysunek 53 Okno dialogowe wy wietlane w odpowiedzi na klikni cie przycisku
Gdy klikniesz odno nik w oknie dialogowym przejdziesz do witryny biblioteki PrimeFaces(rysunek 54)
Rysunek 54 Witryna po wi cona bibliotece PrimeFaces
Jak wida biblioteka PrimeFaces umo liwia tworzenie eleganckich aplikacji sieciowych ma ymnak adem si Dalej zobaczysz jak wykorzysta niektoacutere komponenty PrimeFaces aby znacznieu atwi i upro ci proces tworzenia aplikacji sieciowych
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Spis tre ci
5
Rozdzia 9 Przesy anie komunikatoacutew za pomoc us ug JMSi ziaren sterowanych komunikatami 269
Wprowadzenie do interfejsu JMS 270Tworzenie projektu i zasoboacutew JMS 271Przetwarzanie komunikatoacutew JMS za pomoc ziaren sterowanych komunikatami 280Podsumowanie 283
Rozdzia 10 Us ugi sieciowe SOAP oparte na interfejsie JAX-WS 285
Wprowadzenie do us ug sieciowych 285Tworzenie prostej us ugi sieciowej 286Udost pnianie ziaren EJB jako us ug sieciowych 298Podsumowanie 305
Rozdzia 11 Us ugi sieciowe RESTful oparte na interfejsie JAX-RS 307
Generowanie us ug sieciowych typu RESTful na podstawie istniej cej bazy danych 308Testowanie us ug sieciowych typu RESTful 314Tworzenie klienta us ug sieciowych typu RESTful 319Podsumowanie 325
Dodatek A Debugowanie aplikacji dla firmza pomoc debugera rodowiska NetBeans 327
Debugowanie aplikacji dla firm 327Podsumowanie 333
Dodatek B Wykrywanie problemoacutew z wydajno ciza pomoc profilera rodowiska NetBeans 335
Profilowanie aplikacji 335Podsumowanie 339
Skorowidz 341
Kup książkę Poleć książkę
Spis tre ci
6
Kup książkę Poleć książkę
5
Tworzenie eleganckichaplikacji sieciowych
z wykorzystaniembiblioteki PrimeFaces
Jedn z zalet platformy JSF jest to e umo liwia bardzo atwe tworzenie niestandardowychkomponentoacutew Dlatego powsta o kilka bibliotek komponentoacutew o otwartym dost pie do koduroacuted owego Jedn z nich jest biblioteka PrimeFaces Umo liwia ona atwe tworzenie ele-
ganckich aplikacji sieciowych W wersji 70 rodowiska NetBeans dost pna jest wbudowanabiblioteka PrimeFaces
Pierwszy projekt utworzonyz wykorzystaniem biblioteki PrimeFacesAby zastosowa bibliotek PrimeFaces w projekcie trzeba w standardowy sposoacuteb utworzyaplikacj sieciow w Javie Gdy wybierzesz platform JavaServer Faces kliknij zak adk Com-ponents a nast pnie wybierz pozycj PrimeFaces 221 jako pakiet komponentoacutew (rysunek 51)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
166
Rysunek 51 Tworzenie aplikacji z bibliotek PrimeFaces
Po utworzeniu projektu rodowisko NetBeans doda potrzebne biblioteki Na stronach JSFdost pny wtedy b dzie mechanizm automatycznego uzupe niania projektu dla znacznikoacutewbiblioteki PrimeFaces
Je li wybierzesz PrimeFaces jako pakiet komponentoacutew dla projektu JSF rodowisko NetBeansutworzy przyk adowy projekt u ywaj cy komponentoacutew PrimeFaces Kod wygenerowanego plikuwygl da tak
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtmlgt lthheadgt lttitlegtFacelet Titlelttitlegt lthheadgt lthbodygt lthformgt ltpcommandButton value=Hello from PrimeFaces onclick=dlg1show() type=button gt ltpdialog header=PrimeFaces Dialog widgetVar=dlg1 width=500gt For more information visit lta href=httpprimefaces
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
167
orggthttpprimefacesorgltagt ltpdialoggt lthformgt lthbodygtlthtmlgt
Strona ta wygl da prawie jak zwyk a strona faceletu Wyj tkiem jest kilka komponentoacutew cha-rakterystycznych dla biblioteki PrimeFaces
Zwroacute uwag na to e przestrze nazw biblioteki PrimeFaces (xmlnsp=httpprimefacesprimecomtrui) jest automatycznie dodawana do znacznika lthtmlgt Ta przestrze nazw jest
niezb dna do stosowania komponentoacutew PrimeFaces na stronach Zgodnie z konwencj znacznikiPrimeFaces maj przedrostek p
Pierwszy komponent PrimeFaces na przedstawionej stronie to ltpcommandButtongt Jest on podobnydo standardowego komponentu przycisku polecenia JSF jednak ma pewne dodatkowe zalety (naprzyk ad wygl da elegancko bez konieczno ci r cznego dodawania arkusza styloacutew CSS)
Inny komponent PrimeFaces na przyk adowej stronie to ltpdialoggt Komponent ten jest wy-wietlany jako okno dialogowe ktoacutere mo e znajdowa si nad innymi komponentami strony
Za pomoc warto ci atrybutu widgetVer mo na uzyska dost p do tego komponentu w innychkomponentach ze strony Okno dialogowe udost pnia w tym celu dzia aj cy po stronie klientainterfejs API JavaScriptu Najcz ciej u ywane funkcje tego interfejsu API to show() i hide()S u one do wy wietlania i ukrywania okna dialogowego na stronie Ten interfejs API wykorzy-stano w atrybucie onclick wspomnianego wcze niej przycisku polecenia
Gdy uruchomisz aplikacj zobaczysz automatycznie wygenerowan stron (rysunek 52)
Rysunek 52 Automatycznie wygenerowana strona
Po klikni ciu przycisku pojawi si okno dialogowe (rysunek 53)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
168
Rysunek 53 Okno dialogowe wy wietlane w odpowiedzi na klikni cie przycisku
Gdy klikniesz odno nik w oknie dialogowym przejdziesz do witryny biblioteki PrimeFaces(rysunek 54)
Rysunek 54 Witryna po wi cona bibliotece PrimeFaces
Jak wida biblioteka PrimeFaces umo liwia tworzenie eleganckich aplikacji sieciowych ma ymnak adem si Dalej zobaczysz jak wykorzysta niektoacutere komponenty PrimeFaces aby znacznieu atwi i upro ci proces tworzenia aplikacji sieciowych
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Spis tre ci
6
Kup książkę Poleć książkę
5
Tworzenie eleganckichaplikacji sieciowych
z wykorzystaniembiblioteki PrimeFaces
Jedn z zalet platformy JSF jest to e umo liwia bardzo atwe tworzenie niestandardowychkomponentoacutew Dlatego powsta o kilka bibliotek komponentoacutew o otwartym dost pie do koduroacuted owego Jedn z nich jest biblioteka PrimeFaces Umo liwia ona atwe tworzenie ele-
ganckich aplikacji sieciowych W wersji 70 rodowiska NetBeans dost pna jest wbudowanabiblioteka PrimeFaces
Pierwszy projekt utworzonyz wykorzystaniem biblioteki PrimeFacesAby zastosowa bibliotek PrimeFaces w projekcie trzeba w standardowy sposoacuteb utworzyaplikacj sieciow w Javie Gdy wybierzesz platform JavaServer Faces kliknij zak adk Com-ponents a nast pnie wybierz pozycj PrimeFaces 221 jako pakiet komponentoacutew (rysunek 51)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
166
Rysunek 51 Tworzenie aplikacji z bibliotek PrimeFaces
Po utworzeniu projektu rodowisko NetBeans doda potrzebne biblioteki Na stronach JSFdost pny wtedy b dzie mechanizm automatycznego uzupe niania projektu dla znacznikoacutewbiblioteki PrimeFaces
Je li wybierzesz PrimeFaces jako pakiet komponentoacutew dla projektu JSF rodowisko NetBeansutworzy przyk adowy projekt u ywaj cy komponentoacutew PrimeFaces Kod wygenerowanego plikuwygl da tak
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtmlgt lthheadgt lttitlegtFacelet Titlelttitlegt lthheadgt lthbodygt lthformgt ltpcommandButton value=Hello from PrimeFaces onclick=dlg1show() type=button gt ltpdialog header=PrimeFaces Dialog widgetVar=dlg1 width=500gt For more information visit lta href=httpprimefaces
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
167
orggthttpprimefacesorgltagt ltpdialoggt lthformgt lthbodygtlthtmlgt
Strona ta wygl da prawie jak zwyk a strona faceletu Wyj tkiem jest kilka komponentoacutew cha-rakterystycznych dla biblioteki PrimeFaces
Zwroacute uwag na to e przestrze nazw biblioteki PrimeFaces (xmlnsp=httpprimefacesprimecomtrui) jest automatycznie dodawana do znacznika lthtmlgt Ta przestrze nazw jest
niezb dna do stosowania komponentoacutew PrimeFaces na stronach Zgodnie z konwencj znacznikiPrimeFaces maj przedrostek p
Pierwszy komponent PrimeFaces na przedstawionej stronie to ltpcommandButtongt Jest on podobnydo standardowego komponentu przycisku polecenia JSF jednak ma pewne dodatkowe zalety (naprzyk ad wygl da elegancko bez konieczno ci r cznego dodawania arkusza styloacutew CSS)
Inny komponent PrimeFaces na przyk adowej stronie to ltpdialoggt Komponent ten jest wy-wietlany jako okno dialogowe ktoacutere mo e znajdowa si nad innymi komponentami strony
Za pomoc warto ci atrybutu widgetVer mo na uzyska dost p do tego komponentu w innychkomponentach ze strony Okno dialogowe udost pnia w tym celu dzia aj cy po stronie klientainterfejs API JavaScriptu Najcz ciej u ywane funkcje tego interfejsu API to show() i hide()S u one do wy wietlania i ukrywania okna dialogowego na stronie Ten interfejs API wykorzy-stano w atrybucie onclick wspomnianego wcze niej przycisku polecenia
Gdy uruchomisz aplikacj zobaczysz automatycznie wygenerowan stron (rysunek 52)
Rysunek 52 Automatycznie wygenerowana strona
Po klikni ciu przycisku pojawi si okno dialogowe (rysunek 53)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
168
Rysunek 53 Okno dialogowe wy wietlane w odpowiedzi na klikni cie przycisku
Gdy klikniesz odno nik w oknie dialogowym przejdziesz do witryny biblioteki PrimeFaces(rysunek 54)
Rysunek 54 Witryna po wi cona bibliotece PrimeFaces
Jak wida biblioteka PrimeFaces umo liwia tworzenie eleganckich aplikacji sieciowych ma ymnak adem si Dalej zobaczysz jak wykorzysta niektoacutere komponenty PrimeFaces aby znacznieu atwi i upro ci proces tworzenia aplikacji sieciowych
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
5
Tworzenie eleganckichaplikacji sieciowych
z wykorzystaniembiblioteki PrimeFaces
Jedn z zalet platformy JSF jest to e umo liwia bardzo atwe tworzenie niestandardowychkomponentoacutew Dlatego powsta o kilka bibliotek komponentoacutew o otwartym dost pie do koduroacuted owego Jedn z nich jest biblioteka PrimeFaces Umo liwia ona atwe tworzenie ele-
ganckich aplikacji sieciowych W wersji 70 rodowiska NetBeans dost pna jest wbudowanabiblioteka PrimeFaces
Pierwszy projekt utworzonyz wykorzystaniem biblioteki PrimeFacesAby zastosowa bibliotek PrimeFaces w projekcie trzeba w standardowy sposoacuteb utworzyaplikacj sieciow w Javie Gdy wybierzesz platform JavaServer Faces kliknij zak adk Com-ponents a nast pnie wybierz pozycj PrimeFaces 221 jako pakiet komponentoacutew (rysunek 51)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
166
Rysunek 51 Tworzenie aplikacji z bibliotek PrimeFaces
Po utworzeniu projektu rodowisko NetBeans doda potrzebne biblioteki Na stronach JSFdost pny wtedy b dzie mechanizm automatycznego uzupe niania projektu dla znacznikoacutewbiblioteki PrimeFaces
Je li wybierzesz PrimeFaces jako pakiet komponentoacutew dla projektu JSF rodowisko NetBeansutworzy przyk adowy projekt u ywaj cy komponentoacutew PrimeFaces Kod wygenerowanego plikuwygl da tak
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtmlgt lthheadgt lttitlegtFacelet Titlelttitlegt lthheadgt lthbodygt lthformgt ltpcommandButton value=Hello from PrimeFaces onclick=dlg1show() type=button gt ltpdialog header=PrimeFaces Dialog widgetVar=dlg1 width=500gt For more information visit lta href=httpprimefaces
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
167
orggthttpprimefacesorgltagt ltpdialoggt lthformgt lthbodygtlthtmlgt
Strona ta wygl da prawie jak zwyk a strona faceletu Wyj tkiem jest kilka komponentoacutew cha-rakterystycznych dla biblioteki PrimeFaces
Zwroacute uwag na to e przestrze nazw biblioteki PrimeFaces (xmlnsp=httpprimefacesprimecomtrui) jest automatycznie dodawana do znacznika lthtmlgt Ta przestrze nazw jest
niezb dna do stosowania komponentoacutew PrimeFaces na stronach Zgodnie z konwencj znacznikiPrimeFaces maj przedrostek p
Pierwszy komponent PrimeFaces na przedstawionej stronie to ltpcommandButtongt Jest on podobnydo standardowego komponentu przycisku polecenia JSF jednak ma pewne dodatkowe zalety (naprzyk ad wygl da elegancko bez konieczno ci r cznego dodawania arkusza styloacutew CSS)
Inny komponent PrimeFaces na przyk adowej stronie to ltpdialoggt Komponent ten jest wy-wietlany jako okno dialogowe ktoacutere mo e znajdowa si nad innymi komponentami strony
Za pomoc warto ci atrybutu widgetVer mo na uzyska dost p do tego komponentu w innychkomponentach ze strony Okno dialogowe udost pnia w tym celu dzia aj cy po stronie klientainterfejs API JavaScriptu Najcz ciej u ywane funkcje tego interfejsu API to show() i hide()S u one do wy wietlania i ukrywania okna dialogowego na stronie Ten interfejs API wykorzy-stano w atrybucie onclick wspomnianego wcze niej przycisku polecenia
Gdy uruchomisz aplikacj zobaczysz automatycznie wygenerowan stron (rysunek 52)
Rysunek 52 Automatycznie wygenerowana strona
Po klikni ciu przycisku pojawi si okno dialogowe (rysunek 53)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
168
Rysunek 53 Okno dialogowe wy wietlane w odpowiedzi na klikni cie przycisku
Gdy klikniesz odno nik w oknie dialogowym przejdziesz do witryny biblioteki PrimeFaces(rysunek 54)
Rysunek 54 Witryna po wi cona bibliotece PrimeFaces
Jak wida biblioteka PrimeFaces umo liwia tworzenie eleganckich aplikacji sieciowych ma ymnak adem si Dalej zobaczysz jak wykorzysta niektoacutere komponenty PrimeFaces aby znacznieu atwi i upro ci proces tworzenia aplikacji sieciowych
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
166
Rysunek 51 Tworzenie aplikacji z bibliotek PrimeFaces
Po utworzeniu projektu rodowisko NetBeans doda potrzebne biblioteki Na stronach JSFdost pny wtedy b dzie mechanizm automatycznego uzupe niania projektu dla znacznikoacutewbiblioteki PrimeFaces
Je li wybierzesz PrimeFaces jako pakiet komponentoacutew dla projektu JSF rodowisko NetBeansutworzy przyk adowy projekt u ywaj cy komponentoacutew PrimeFaces Kod wygenerowanego plikuwygl da tak
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtmlgt lthheadgt lttitlegtFacelet Titlelttitlegt lthheadgt lthbodygt lthformgt ltpcommandButton value=Hello from PrimeFaces onclick=dlg1show() type=button gt ltpdialog header=PrimeFaces Dialog widgetVar=dlg1 width=500gt For more information visit lta href=httpprimefaces
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
167
orggthttpprimefacesorgltagt ltpdialoggt lthformgt lthbodygtlthtmlgt
Strona ta wygl da prawie jak zwyk a strona faceletu Wyj tkiem jest kilka komponentoacutew cha-rakterystycznych dla biblioteki PrimeFaces
Zwroacute uwag na to e przestrze nazw biblioteki PrimeFaces (xmlnsp=httpprimefacesprimecomtrui) jest automatycznie dodawana do znacznika lthtmlgt Ta przestrze nazw jest
niezb dna do stosowania komponentoacutew PrimeFaces na stronach Zgodnie z konwencj znacznikiPrimeFaces maj przedrostek p
Pierwszy komponent PrimeFaces na przedstawionej stronie to ltpcommandButtongt Jest on podobnydo standardowego komponentu przycisku polecenia JSF jednak ma pewne dodatkowe zalety (naprzyk ad wygl da elegancko bez konieczno ci r cznego dodawania arkusza styloacutew CSS)
Inny komponent PrimeFaces na przyk adowej stronie to ltpdialoggt Komponent ten jest wy-wietlany jako okno dialogowe ktoacutere mo e znajdowa si nad innymi komponentami strony
Za pomoc warto ci atrybutu widgetVer mo na uzyska dost p do tego komponentu w innychkomponentach ze strony Okno dialogowe udost pnia w tym celu dzia aj cy po stronie klientainterfejs API JavaScriptu Najcz ciej u ywane funkcje tego interfejsu API to show() i hide()S u one do wy wietlania i ukrywania okna dialogowego na stronie Ten interfejs API wykorzy-stano w atrybucie onclick wspomnianego wcze niej przycisku polecenia
Gdy uruchomisz aplikacj zobaczysz automatycznie wygenerowan stron (rysunek 52)
Rysunek 52 Automatycznie wygenerowana strona
Po klikni ciu przycisku pojawi si okno dialogowe (rysunek 53)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
168
Rysunek 53 Okno dialogowe wy wietlane w odpowiedzi na klikni cie przycisku
Gdy klikniesz odno nik w oknie dialogowym przejdziesz do witryny biblioteki PrimeFaces(rysunek 54)
Rysunek 54 Witryna po wi cona bibliotece PrimeFaces
Jak wida biblioteka PrimeFaces umo liwia tworzenie eleganckich aplikacji sieciowych ma ymnak adem si Dalej zobaczysz jak wykorzysta niektoacutere komponenty PrimeFaces aby znacznieu atwi i upro ci proces tworzenia aplikacji sieciowych
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
167
orggthttpprimefacesorgltagt ltpdialoggt lthformgt lthbodygtlthtmlgt
Strona ta wygl da prawie jak zwyk a strona faceletu Wyj tkiem jest kilka komponentoacutew cha-rakterystycznych dla biblioteki PrimeFaces
Zwroacute uwag na to e przestrze nazw biblioteki PrimeFaces (xmlnsp=httpprimefacesprimecomtrui) jest automatycznie dodawana do znacznika lthtmlgt Ta przestrze nazw jest
niezb dna do stosowania komponentoacutew PrimeFaces na stronach Zgodnie z konwencj znacznikiPrimeFaces maj przedrostek p
Pierwszy komponent PrimeFaces na przedstawionej stronie to ltpcommandButtongt Jest on podobnydo standardowego komponentu przycisku polecenia JSF jednak ma pewne dodatkowe zalety (naprzyk ad wygl da elegancko bez konieczno ci r cznego dodawania arkusza styloacutew CSS)
Inny komponent PrimeFaces na przyk adowej stronie to ltpdialoggt Komponent ten jest wy-wietlany jako okno dialogowe ktoacutere mo e znajdowa si nad innymi komponentami strony
Za pomoc warto ci atrybutu widgetVer mo na uzyska dost p do tego komponentu w innychkomponentach ze strony Okno dialogowe udost pnia w tym celu dzia aj cy po stronie klientainterfejs API JavaScriptu Najcz ciej u ywane funkcje tego interfejsu API to show() i hide()S u one do wy wietlania i ukrywania okna dialogowego na stronie Ten interfejs API wykorzy-stano w atrybucie onclick wspomnianego wcze niej przycisku polecenia
Gdy uruchomisz aplikacj zobaczysz automatycznie wygenerowan stron (rysunek 52)
Rysunek 52 Automatycznie wygenerowana strona
Po klikni ciu przycisku pojawi si okno dialogowe (rysunek 53)
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
168
Rysunek 53 Okno dialogowe wy wietlane w odpowiedzi na klikni cie przycisku
Gdy klikniesz odno nik w oknie dialogowym przejdziesz do witryny biblioteki PrimeFaces(rysunek 54)
Rysunek 54 Witryna po wi cona bibliotece PrimeFaces
Jak wida biblioteka PrimeFaces umo liwia tworzenie eleganckich aplikacji sieciowych ma ymnak adem si Dalej zobaczysz jak wykorzysta niektoacutere komponenty PrimeFaces aby znacznieu atwi i upro ci proces tworzenia aplikacji sieciowych
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
168
Rysunek 53 Okno dialogowe wy wietlane w odpowiedzi na klikni cie przycisku
Gdy klikniesz odno nik w oknie dialogowym przejdziesz do witryny biblioteki PrimeFaces(rysunek 54)
Rysunek 54 Witryna po wi cona bibliotece PrimeFaces
Jak wida biblioteka PrimeFaces umo liwia tworzenie eleganckich aplikacji sieciowych ma ymnak adem si Dalej zobaczysz jak wykorzysta niektoacutere komponenty PrimeFaces aby znacznieu atwi i upro ci proces tworzenia aplikacji sieciowych
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
169
Stosowanie komponentoacutew PrimeFacesw aplikacjach JSFZ tego podrozdzia u dowiesz si jak stosowa proste komponenty PrimeFaces aby u atwisobie prac nad tworzeniem aplikacji JSF Poni ej znajduje si kod prostej strony do wprowa-dzania danych na temat klientoacutew
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffaceletsgt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt ltpmessagesgt ltppanel header=Wprowadzanie danychgt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customerfirstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customermiddleNamegt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customerlastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customerbirthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGroupgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
170
ltpcommandButton value=Prze lij action=customerController saveCustomer ajax=falsegt lthpanelGridgt ltppanelgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
W przyk adzie wykorzystano dost pny w rodowisku NetBeans mechanizm generowania szablonoacutew fa-celetu Dzi ki temu mo na bdquoza darmordquo uzyska bardzo ciekawe style CSS Wi cej informacji o szablonachfaceletoacutew w rodowisku NetBeans znajdziesz w poprzednim rozdziale
Gdy uruchomisz projekt przedstawiony kod zostanie wy wietlony w przegl darce tak jak narysunku 55
Rysunek 55 Strona do wprowadzania danych w przegl darce
Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to ltpmessagesgt Mo na gowykorzysta jako zamiennik standardowego komponentu JSF lthmessagesgt Zalet znacznikaltpmessagesgt w poroacutewnaniu ze znacznikiem lthmessagesgt jest to e komunikaty o b dachw znaczniku ltpmessagesgt s domy lnie formatowane w elegancki sposoacuteb (rysunek 56)
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
171
Rysunek 56 Sformatowane komunikaty o b dach w znaczniku ltpmessagesgt
Podobnie jak w przypadku komponentu ltpmessagesgt biblioteka PrimeFaces udost pnia kom-ponent ltpmessagegt ktoacutery mo na potraktowa jako zamiennik standardowego komponentuJSF lthmessagegt (w przyk adzie nie zastosowano komponentu ltpmessagegt) Znacznik ltpmessagegtpodobnie jak lthmessagegt nale y stosowa do wy wietlania b doacutew zwi zanych ze sprawdza-niem poprawno ci obok poacutel z nieprawid owymi danymi a nie w goacuternej cz ci strony
Inny komponent PrimeFaces wykorzystany w przyk adzie to ltpcalendargt Kalendarz ten mo -na wykorzysta do wprowadzania dat Gdy u ytkownik kliknie ikon wygenerowan dla tegokomponentu pojawi si atrakcyjny wid et z kalendarzem (rysunek 57) U ytkownik mo e w nimwybra dat klikaj c j
Komponent kalendarza biblioteki PrimeFaces mo na w szerokim zakresie modyfikowa Do-my lnie jest wy wietlany jako pole tekstowe a gdy u ytkownik je kliknie pojawia si wid etz kalendarzem W przyk adzie atrybut showOn ma warto button To powoduje e obok polatekstowego widoczna jest ikona kalendarza Jest to wizualna wskazoacutewka informuj ca o spe-cjalnym charakterze pola Pozwala to tak e wprowadzi dat r cznie je li u ytkownik woli za-stosowa to podej cie
Domy lnie listy miesi cy i lat s niedost pne co utrudnia wprowadzanie dat z odleg ej prze-sz o ci i przysz o ci (domy lnym dniem jest zawsze dzie bie cy) Aby rozwi za ten pro-blem mo na ustawi w a ciwo navigator na true jak zrobiono w przyk adowym kodzie
Ponadto mo na kontrolowa wygl d pola tekstowego Umo liwiaj to atrybuty inputStylei inputStyleClass komponentu ltpcalendargt Warto ci atrybutu inputStyle musi by po-prawny wewn trzwierszowy kod CSS natomiast w atrybucie inputStyleClass trzeba podanazw klasy CSS zdefiniowanej w jednym z arkuszy styloacutew CSS
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
172
Rysunek 57 Komponent kalendarza umo liwia wybranie daty
Ostatnim nowym komponentem PrimeFaces u ytym na przyk adowej stronie jest ltpcommandButtongt Domy lnie wy wietla on przycisk ktoacutery zg asza ajaksowe danie aktualizacji cz -
ci strony Nie jest wtedy konieczne od wie anie ca ej strony Komponent ten mo na wyko-rzysta jako zamiennik standardowego komponentu JSF lthcommandButtongt W tym celu w a-ciwo ajax nale y ustawi na false tak jak w przyk adowym kodzie Zalet stosowania
komponentu ltpcommandButtongt zamiast lthcommandButtongt jest to e ma on domy lnie ele-gancki wygl d Dzi ki temu nie trzeba tworzy niestandardowych styloacutew CSS dla przyciskoacutew
Gdy klikniesz przycisk na przyk adowej stronie przejdziesz do strony z potwierdzeniem (ry-sunek 58)
Rysunek 58 Strona z potwierdzeniem
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
173
Na stronie z potwierdzeniem nie ma adnych nowych komponentoacutew PrimeFaces dlategostrona ta nie wymaga omoacutewienia Znajdziesz j w dost pnym do pobrania kodzie dla tegorozdzia u (plik confirmationxhtml)
Widoki z zak adkamiW formularzach HTML cz sto znajduje si du o poacutel przez co formularze mog by bardzod ugie Programi ci nieraz dziel formularze na zak adki dzi ki czemu strona jest mniejprzyt aczaj ca dla u ytkownikoacutew Zwykle tworzenie stron z zak adkami wymaga stosowaniasztuczek z j zykoacutew HTML i JavaScript Jednak biblioteka PrimeFaces udost pnia komponentltptabViewgt ktoacutery mo na wykorzysta do atwego generowania zak adek W poni szym przy-k adzie pokazano jak korzysta z tego komponentu
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o klientachlth2gt ltuidefinegt ltuidefine name=contentgt lthformgt ltpmessagesgt lthpanelGrid columns=1 style=width 100gt ltptabViewgt ltptab title=Dane osobowegt lthpanelGrid columns=2gt lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleNamegt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
174
lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltptabgt ltptab title=Adresgt lthpanelGrid columns=2gt lthoutputLabel for=line1 value=Wiersz 1 styleClass=requiredLblgt lthinputText id=line1 value=customer addrLine1 required=truegt lthoutputLabel for=line2 value=Wiersz 2 styleClass=optionalLblgt lthinputText id=line2 value=customer addrLine2gt lthoutputLabel for=city value=Miasto styleClass=requiredLblgt lthinputText id=city value=customer addrCity required=truegt lthoutputLabel for=state value=Wojewoacutedztwo styleClass=requiredLblgt lthselectOneMenu id=state required=true value=customeraddrStategt ltfselectItem itemValue= itemLabel=gt ltfselectItem itemValue=LB itemLabel=Lubelskiegt ltfselectItem itemValue=MZ itemLabel=Mazowieckiegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
175
ltfselectItem itemValue=OP itemLabel=Opolskiegt ltfselectItem itemValue=PM itemLabel=Pomorskiegt lt-- Z uwagi na zwi z o przyk adu pozosta e wojewoacutedztwa zosta y pomini te --gt lthselectOneMenugt lthoutputLabel for=zip value=Kod styleClass=requiredLblgt lthinputText id=zip value=customer addrZip required=truegt lthpanelGridgt ltptabgt ltptab title=Numery telefonugt lthpanelGrid columns=2gt lthoutputLabel for=homePhone value=Domowygt ltpinputMask id=homePhone mask=(999)-999-999 value=customer homePhone size=12 styleClass=optionalLblgt lthoutputLabel for=mobilePhone value=Komoacuterkowygt ltpinputMask id=mobilePhone mask=(999)-999-999 value=customer mobilePhone size=12 styleClass=optionalLblgt lthoutputLabel for=workPhone value=S u bowygt ltpinputMask id=workPhone mask=(999)-999-999 value=customer workPhone size=12 styleClass=optionalLblgt lthpanelGridgt ltptabgt ltptabViewgt ltpcommandButton value=Prze lij action=customerControllersaveCustomer ajax=falsegt lthpanelGridgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
176
lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Jak wida w tym przyk adzie nadrz dnym komponentem interfejsu z zak adkami jest ltptabViewgtWewn trz niego trzeba umie ci jeden lub kilka komponentoacutew ltptabgt Ka dy komponentltptabgt zawiera tu pola na dane wej ciowe Pola te pojawiaj si w odpowiednich zak adkachKomponent ltptabgt ma atrybut title ktoacuterego warto jest wy wietlana jako nag oacutewek za-k adki
Gdy uruchomisz projekt zobaczysz jak dzia a komponent zak adki (rysunek 59)
Rysunek 59 Zak adki na stronie
Po klikni ciu poszczegoacutelnych zak adek zobaczysz umieszczone na nich komponenty (rysunek 510)
Uwa ni Czytelnicy zapewne zauwa yli e w trzeciej zak adce pojawi si nowy komponentPrimeFaces mdash ltpinputMaskgt Pozwala on uniemo liwi u ytkownikom wprowadzenie lesformatowanych danych Tu komponent ten wykorzystano dla ka dego pola na numer telefonuDzia anie tego komponentu przedstawia rysunek 511
Jak wida na rysunku gdy u ytkownik kliknie komponent inputMask automatycznie wy wie-tlany jest oczekiwany format U ytkownik musi tylko uzupe ni puste miejsca aby dane by ypoprawnie sformatowane Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx gdziex to cyfra w systemie dziesi tnym Przy definiowaniu masek cyfra 9 reprezentuje dowolncyfr litera a reprezentuje dowoln liter a gwiazdka () mdash dowoln cyfr lub liter
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
177
Rysunek 510 Komponenty z zak adki Adres
Rysunek 511 Dzia anie komponentu ltpinputMaskgt
Tu w celu formatowania danych przypisano do atrybutu mask komponentu ltpinputMaskgtwarto (999)-999-999 co pozwoli o uzyska po dan mask
Komponent ltpinputMaskgt pozwala wi c wymusza poprawne formatowanie danych bez sto-sowania walidatoroacutew JSF
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
178
Pora wroacuteci do omawiania zak adek Gdy u ytkownik kliknie widoczny w dolnej cz ci stronyprzycisk Prze lij dane z wszystkich zak adek zostan przes ane i potraktowane jak informacjez jednego znacznika lthformgt Od tego momentu dzia a standardowy dla JSF proces przetwa-rzania da
Interfejsy oparte na kreatorzeInn (obok zak adek) popularn technik dzielenia d ugich formularzy jest stosowanie kreatoroacutewS one przydatne gdy u ytkownik musi uzupe ni pola w okre lonej kolejno ci W poprzed-nim przyk adzie nie mo na wymusi na u ytkowniku wprowadzenia adresu przed podaniemnumeru telefonu Dlatego nie mo na sprawdzi czy wprowadzone numery pasuj do miejscazamieszkania podanego w adresie Aby rozwi za ten problem mo na wykorzysta interfejsoparty na kreatorze Po dany efekt mo na atwo uzyska za pomoc komponentu PrimeFacesltpwizardgt Poni ej pokazano jak zastosowa ten komponent
ltxml version=10 encoding=UTF-8 gtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalENhttpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgtlthtml xmlns=httpwwww3org1999xhtml xmlnsp=httpprimefacesprimecomtrui xmlnsh=httpjavasuncomjsfhtml xmlnsui=httpjavasuncomjsffacelets xmlnsf=httpjavasuncomjsfcoregt ltuicomposition template=templatexhtmlgt ltuidefine name=topgt lth2gtWprowadzanie danych o u ytkownikachlth2gt ltuidefinegt
ltuidefine name=contentgt lthformgt lthpanelGrid columns=1 style=width 100gt ltpwizardgt ltptab title=Dane osobowe id=personalInfogt ltppanel header=Dane osobowegt ltpmessagesgt lthpanelGrid columns=2gt
lthoutputLabel for=firstName value=Imi styleClass=requiredLblgt lthinputText id=firstName label=Imi value=customer firstName required=truegt
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
179
lthoutputLabel for=middleName value=Drugie imi styleClass=optionalLblgt lthinputText id=middleName label=Drugie imi value=customer middleName gt lthoutputLabel for=lastName value=Nazwisko styleClass=requiredLblgt lthinputText id=lastName label=Nazwisko value=customer lastName required=truegt lthoutputLabel for=birthDate value=Data urodzenia styleClass=optionalLblgt ltpcalendar id=birthDate value=customer birthDate showOn=button inputStyle=width100px navigator=truegt lthpanelGridgt ltppanelgt ltptabgt lt-- Zak adk z numerami telefonoacutew pomini to z uwagi na zwi z o przyk adu --gt ltptab title=Potwierdzenie id=confirmationgt ltpmessagesgt lthpanelGrid columns=2gt lthoutputText value=Imi styleClass=optionalLblgt lthoutputText id=firstNameTxt value=customer firstName gt lthoutputText value=Drugie imi styleClass=optionalLblgt lthoutputText id=middleNameTxt value=customer middleNamegt lthoutputText value=Nazwisko styleClass=optionalLblgt lthoutputText id=lastNameTxt value=customer lastName gt lthoutputText value=Data urodzenia styleClass=optionalLblgt
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
180
lthoutputText id=birthDateTxt value=customer formattedBirthDate gt lthoutputText value=Telefon domowy styleClass=optionalLblgt lthoutputText id=homePhoneTxt value=customer homePhone gt lthoutputText value=Telefon komoacuterkowy styleClass=optionalLblgt lthoutputText id=mobilePhoneTxt value=customer mobilePhone gt lthoutputText value=Telefon s u bowy styleClass=optionalLblgt lthoutputText id=workPhoneTxt value=customer workPhone gt lthpanelGroupgt lthinputHidden value=customer addrStategt ltpcommandButton id=submitButton value=Prze lij actionListener= customerControllersaveCustomer ajax=falsegt lthpanelGridgt ltptabgt ltpwizardgt lthpanelGridgt lthformgt ltuidefinegt ltuicompositiongtlthtmlgt
Niektoacutere strony (bdquozak adkirdquo) kreatora zosta y pomini te w kodzie z uwagi na konieczno zachowania zwi -z o ci tego przyk adu Kompletn wersj znajdziesz w dost pnym do pobrania kodzie do tego rozdzia u
Jak wida biblioteka PrimeFaces sprawia e generowanie interfejsoacutew opartych na kreatorzejest proste Wystarczy zastosowa komponent ltpwizardgt a nast pnie doda komponent ltptabgtdla ka dego etapu kreatora W ka dym komponencie ltptabgt mo na umie ci standardowykod JSF
W ostatniej zak adce znajduje si komponent ltpcommandButtongt s u cy do przesy ania da-nych na serwer Warto atrybutu actionListener tego komponentu to metoda z ziarna zarz -dzanego CustomerController
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
181
package comensodeprimefacesdemomanagedbeansimport javaioSerializableimport javaxfacesbeanManagedBeanimport javaxfacesbeanSessionScopedimport javaxfaceseventActionEventimport javaxfacesapplicationFacesMessageimport javaxfacescontextFacesContextManagedBeanSessionScopedpublic class CustomerController implements Serializable Tworzy nowy obiekt typu CustomerController public CustomerController() public void saveCustomer(ActionEvent actionEvent) W rzeczywistej aplikacji nale a oby zapisa dane W tym przyk adzie kod tylko wy wietla komunikat FacesMessage facesMessage = new FacesMessage( Dane zosta y zapisane) facesMessagesetSeverity(FacesMessageSEVERITY_INFO) FacesContextgetCurrentInstance()addMessage(null facesMessage)
Metoda saveCustomer() tylko ustawia komunikat wy wietlany jako potwierdzenie na stronieW rzeczywistej aplikacji oczywi cie nale a oby zapisa dane w bazie
Na tym etapie mo na zobaczy jak dzia a komponent kreatora (rysunek 512)
Rysunek 512 Dzia anie komponentu kreatora
Zauwa e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogustrony (rysunek 513) Klikni cie tego przycisku powoduje przej cie do nast pnej strony kreatora
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
182
Rysunek 513 Przycisk Next pozwala przechodzi mi dzy stronami kreatora
Jak mo na si domy li komponent kreatora generuje zaroacutewno przycisk Next jak i przycisk Back
Po przej ciu w kreatorze do ostatniej strony i klikni ciu przycisku Prze lij pojawi si komuni-kat z potwierdzeniem wygenerowany przez metod saveCustomer() z ziarna zarz dzanegoCustomerController Komunikat ten jest wy wietlany przez komponenty ltpmessagesgt ktoacutere za-pewniaj elegancki styl tekstu bez konieczno ci jawnego stosowania styloacutew CSS (rysunek 514)
Rysunek 514 Komponent ltpmessagesgt zapewnia elegancki styl komunikatu
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Rozdzia 5 bull Tworzenie eleganckich aplikacji sieciowych
183
Dodatkowe informacjeW tym rozdziale przedstawiono tylko podstawowe informacje na temat mo liwo ci bibliotekiPrimeFaces Pokaz ilustruj cy wszystkie komponenty z tej biblioteki znajdziesz na stroniehttpwwwprimefacesorgshowcaseuihomejsf Wi cej informacji na temat tej biblioteki zawierawitryna httpwwwprimefacesorg
PodsumowanieTen rozdzia zawiera wprowadzenie do biblioteki komponentoacutew JSF PrimeFaces dost pnejw rodowisku NetBeans od wersji 70 Pokazano tu w jaki sposoacuteb biblioteka PrimeFaces umo -liwia atwe tworzenie eleganckich aplikacji z obs ug Ajaksa Jednym z wa nych opisanych tukomponentoacutew biblioteki PrimeFaces jest komponent zak adek ktoacutery umo liwia wygodne dziele-nie stron na zak adki Dowiedzia e si te jak stosowa komponent kreatora z bibliotekiPrimeFaces pozwalaj cy na atwe tworzenie w aplikacjach sieciowych interfejsoacutew opartychna kreatorach
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Java EE 6 Tworzenie aplikacji w NetBeans 7
184
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Skorowidz
Aadnotacja
ActivationConfigProperty 283AroundInvoke 240EJB 301Entity 193 206FacesValidator 151Id 193InterceptorBinding 263Interceptors 240 241ManagedBean 145MessageDriven 283Named 253NamedQueries 207Path 314 319Qualifier 256RequestScoped 145Schedule 243Stateless 314Table 207TransactionAttribute 238ViewScoped 145WebServlet 73
adres URL 77aktualizowanie danych w bazie 116AOP Aspect Oriented Programming 248aplikacje
CDI 251debugowanie 327JSF 132 217 251JSP 215profilowanie 335sieciowe 51 131z kwalifikatorami 260
architektura JMS 270atrybuty dyrektywy strony 57automatyczna obs uga zasoboacutew 159automatyczne generowanie
encji 200klas 296komunikatoacutew 136 149stron 167
Bbaza danych 308
aktualizowanie danych 116modyfikowanie danych 114schemat APP 190usuwanie danych 119wstawianie danych 114
bezpiecze stwoaplikacji 86serwera 89
bezstanowe ziarno sesyjne 298 314biblioteka
JSTL 97 122 126PrimeFaces 165znacznikoacutew niestandardowych 127
CCDDL Common Development and Distribution
License 21CDI Contexts and Dependency Injection 249
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Skorowidz
342
DDAO Data Access Object 195debuger 327ndash333deskryptor
glassfish-webxml 90wdra ania 73 85
docelowa lokalizacja JMS 272dodawanie
adnotacji Interceptors 241deskryptora wdra ania 85 108grup bezpiecze stwa 90instrukcji INSERT 114metod do ziaren 232 248nowej strony JSP 67pliku klienta 294poacutel 62projektu biblioteki 234referencji 109roacutel zabezpiecze 86serwletu 72szablonu faceletu 154utrwalanych poacutel 194u ytkownikoacutew 92znacznikoacutew 113
dokument JSR 208domena bezpiecze stwa security realm 81dost p do
obiektoacutew JSTL 104stron 87ziarna 233
dost pnemetody obiektu 70obiekty 69
dyrektywa strony JSP 56dzia anie typu do wi zania interceptoroacutew 266dzielenie formularzy 178
EEAR Enterprise Application 224EJB Enterprise JavaBeans 223ekran
instalatora 25startowy 26
encje JPA 186 192 215 244etap projektu JSF 135
Ffabryka po cze 274facelet 136 251format
JSON 317XML 317
formatowanie kodu 60formularz 58 65fragmenty JSP 93
Ggenerowanie
aplikacji JSP 215encji JPA 200 203 205interfejsoacutew 178klas 296 311klasy kontroleroacutew 196kluczy g oacutewnych 193 218kodu
do wysy ania komunikatoacutew 276klienta 296 319kwalifikatora 256nowego typu 264stereotypu 262us ugi sieciowej 287 299 302 305
kwerend JPQL 207metod 291serwletoacutew 73stron 167stron JSF 215szablonoacutew 152szablonoacutew faceletu 170tabeli 61us ug sieciowych 308ziaren sesyjnych 231 244
getter 145 195GPL GNU Public License 21grupa bezpiecze stwa 90
Hhierarchia bie cej klasy 45
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Skorowidz
343
IIDE Integrated Development Environment 15identyfikator
JNDI 224 276URI 98 307
ikonab d kompilacji 48implementacja interfejsu 49ostrze enie 48przes anianie metod 48
implementowanieklienta 317strony b du logowania 84uwierzytelniania 82warstwy biznesowej 223
informacjeo bazie danych 201o przywracaniu pami ci 338
instalowanie aplikacji 35instalowanie rodowiska 19
Linux 20Mac OS X 19Microsoft Windows 19Solaris 20
instrukcjaDELETE 120 121INSERT 114UPDATE 119
integrowanie rodowiska 27z serwerem aplikacji 27z systemem RDBMS 30
interceptor 239 263interfejs
API Servlet 51CDI 249graficzny 288javaxjmsMessage 278javaxjmsMessageListener 283javaxservletjspjstlsqlResult 110JAX-RS 307JAX-WS 285JMS 270JPA 185JTA 192lokalny 230zdalny 230
JJ2EE 223 237Java EE 16Java ME 16Java SE 16JAXB Java API for XML Binding 203JAX-RS 307JDK Java Development Kit 19j zyk
JPQL 207UEL 252
JMS Java Messaging Service 269JNDI Java Naming and Directory Interface 109JPA Java Persistence API 16 185JPQL Java Persistence Query Language 207JSF JavaServer Faces 54 131
biblioteka PrimeFaces 165komponenty z o one 159nowy projekt 133poprawno danych 148szablony 152
JSON JavaScript Object Notation 317JSP Java Server Pages 51JSR Java Specification Request 208JSTL Java Standard Tag Library 97JTA Java Transaction API 192
Kkalendarz 171katalog
instalacyjny 23resources 140
klasaAbstractClass 312ApplicationConfig 318interceptora 240ValidatorException 151
klasyfasady 311kontroleroacutew 195
klient 237szablonu 158us ugi sieciowej 293 319
klucz g oacutewny 193kod klienta us ugi sieciowej 297
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Skorowidz
344
kolejka komunikatoacutew 272komponent kreatora 181komponentyPrimeFaces 165 183z o one 159komunikacja z baz 187komunikatJMS 271 276o b dzie 149 151 171SOAP 289konfigurowaniebezpiecze stwa aplikacji 86 89 90dost pu do stron 87fabryki po cze 275klasy kontrolera 197klienta 320kodu do wysy ania komunikatoacutew 277kolejki komunikatoacutew 273komponentu 160kwalifikatora 257metody 232nowego ziarna 281odwzorowa 205operacji 289operacji wstawiania danych 114po czenia 190procesu generowania ziaren 245serwletu 74rodowiska 27
us ugi sieciowej 301 304ziarna 144ziarna sesyjnego 229znacznikaltcchoosegt 102ltcforEachgt 105ltcifgt 99ltsqlquerygt 111ltsqlupdategt 117 120konsola administracyjna serwera 90 91kontener serwletoacutew 22kontroler 72kreatorCreate Persistence Unit 187interfejsu 180klas encji 187New Entity Classes from Database 207New JSF Managed Bean 145
us ug sieciowych 299
kwalifikator CDI 256kwerendy nazwane 207
Llicencja
CDDL 21GPL 21
listaobiektoacutew 69szablonoacutew kodu 44
a cuch znakoacutew 323
Mmechanizm MTOM 290metoda
GET 59getProjectStage() 136getServletContext() 77getSession() 77main() 278POST 59saveCustomer() 181sendJMSMessageToMyQueue() 278
metody interfejsu javaxservletjspjstlsqlResult110
model 72modyfikowanie
danych w bazie 114deskryptora wdra ania 89kodu 57skryptletu 79strony 58 138us ugi sieciowej 288
MVC Model-View-Controller 72
Nnarz dzia diagnostyczne 136nawigacja
dynamiczna 142statyczna 142
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Skorowidz
345
nazwa grupy 90nazwy roacutel zabezpiecze 90NetBeans
instalowanie aplikacji 35instalowanie rodowiska 19konfigurowanie rodowiska 27pierwsze uruchomienie 26pobieranie rodowiska 16wydajne programowanie 38
nowabaza danych 201encja 216operacja 289pula po cze 189rola 87strona 66us uga sieciowa 300
noweoperacje us ugi 290ziarno 281ziarno sesyjne 229
nowydeskryptor wdra ania 109egzemplarz encji 219fragment JSP 95projekt 36projekt JSF 133szablon faceletu 153
Oobiekty
DAO 195na stronach JSP 69POJO 186 298SurveyData 76
obs ugainterfejsu CDI 250widokoacutew 251 253
oknoLocal Variables 333us ugi sieciowej 302VM Telemetry 337
okre lanie pakietu zasoboacutew 310opcja
Connect Usinghellip 33Create Databasehellip 200
Deploy 101Getters and Setters 145Run File 64Test Resource Uri 314
operacjeCRUD 307us ugi sieciowej 295
operatory JSTL 104
Ppakiet JDK 19pakiety rodowiska NetBeans 18platforma JSF 54 131plik
glassfish-resourcesxml 276webxml 90 108 135
plikiEAR 224JSP 56 68WAR 224WSDL 286 293 303znacznikoacutew niestandardowych 122
pobieraniedanych 138danych z bazy 109referencji do obiektu 235rodowiska 16
POJO Plain Old Java Object 186 298pola do wprowadzania danych 62pole wyboru 62 63po czenie z RDBMS 32profiler 335ndash339programowanie
aspektowe 239 248 263 267serwletoacutew 72
projektEnterprise Application 225 271Java Class Library 227
protokoacuteREST 285SOAP 285
przenoszenie wspoacutelnego kodu 96przesy anie
danych 323formularza 64komunikatoacutew 275ndash279
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Skorowidz
346
przycisk Remove Operation 289pula po cze 187 188
Rreferencja do interfejsu zdalnego 236relacja
jeden do jednego 211 213jeden do wielu 211 213wiele do jednego 211wiele do wielu 211 213
relacjedwukierunkowe 214jednokierunkowe 214mi dzy encjami 209
REST Representational State Transfer 285 307role zabezpiecze 86
Sschemat
APP 190bazy danych 34 203
serweraplikacji 19 27aplikacji GlassFish 22 54Tomcat 54
serwlet 51 72 74setter 145 195siatka 139skroacutet 82skroacutety klawiaturowe 43
Alt+Enter 46Alt+F12 45Alt+F7 46Alt+Insert 45 145Ctrl+[ 45Ctrl+E 46Ctrl+F12 43Ctrl+Shift+[ 45Ctrl+Shift+I 47Ctrl+Shift+N 52Ctrl+Spacja 38 57Shift+Alt+F 46 60Shift+Alt+O 46Shift+F6 64
skrypt create_populate_tablessql 202skryptlety JSP 71SOAP Simple Object Access Protocol 285sprawdzanie poprawno ci
danych 148ziaren 208
SQL-owe znaczniki 109stereotyp CDI 260sterownik JDBC 31 189stosowanie kwalifikatoroacutew 258strona
b du logowania 84confirmationxhtml 255do wprowadzania danych 57domy lna 38logowania 92startowa aplikacji 218wy wietlaj ca dane 66z potwierdzeniem 146 172 260
strony JSP 56system
JavaDB 189 190RDBMS 27 31 189
szablony 152 154szablony kodu 41 42szkielet projektu JSF 135
cie ka resources 319
Ttechnologia JSP 51testowanie us ugi sieciowej 291 314ndash317Tomcat 22transakcje 238tryb potwierdzania 279 283tworzenie
aplikacji 166aplikacji JSF 132 169aplikacji sieciowych 51 131bazy danych 201deskryptora wdra ania 89docelowej lokalizacji JMS 272encji JPA 186
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Skorowidz
347
fragmentu JSP 93 94klas kontroleroacutew 195klasy encji 186klasy interceptora 240klienta szablonu 155klienta us ug sieciowych 293 295 319kolejki komunikatoacutew 273komponentoacutew z o onych 160kwalifikatora 256obiektoacutew DAO 195pliku ziarna 280pliku znacznika JSP 122po czenia JMS 279projektu Enterprise Application 225projektu Java Class Library 227puli po cze 189serwletoacutew 72stereotypu 261strony wy wietlaj cej dane 66strony z potwierdzeniem 146szablonoacutew faceletoacutew 152us ug sieciowych 285 298 303 308ziarna 76ziarna sesyjnego 224 228ziarna zarz dzanego 143roacuted a danych 189
typy do wi zania interceptoroacutew 263
Uudost pnianie
obiektu POJO 298ziaren EJB 298 301
UEL Unified Expression Language 252URI Uniform Resource Identifier 307URI Unique Resource Identifier 98uruchamianie
aplikacji 147klienta 237projektu 55rodowiska 26
us ugi siecioweRESTful 307 311SOAP 285
us ugi zegara 243
ustawianiepakietu 309w a ciwo ci pola wyboru 63w a ciwo ci przycisku 64w a ciwo ci serwletu 73w a ciwo ci strony JSP 67
usuwaniedanych z bazy 119operacji us ugi 289
utrwalanie danych 191 194uwierzytelnianie u ytkownika
certyfikat po stronie klienta 82oparte na formularzu 82ndash85podstawowe 81z wykorzystaniem skroacutetu 82
uzupe nianiekodu 38 40nazw 38 41
u ywanie szablonoacutew 154
Wwalidator niestandardowy 150warto ci adnotacji TransactionAttribute 238wi zanie interceptoroacutew 263 265widok 72w a ciwo ci
kolejki komunikatoacutew 274pola wyboru 63przycisku 64serwletu 73strony JSP 67
wprowadzanie danych 57wskazoacutewki wizualne 47wstawianie
formularzy 59tabeli 60
wybieranieencji 216 245klasy encji 196tabel 204 309us ugi dla klienta 320
wyciek pami ci 338wydajne programowanie 38 335wyj tki
JMSException 282ValidatorException 151
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę
Skorowidz
348
wysy anie komunikatoacutew 276wy wietlanie
cz ci strony 98stron 88
wzorzec projektowyDAO 195Fasada 311MVC 72
Zzabezpieczanie aplikacji sieciowych 81zak adka Adres 177zak adki 173 176za cznik komunikatu 290zarz dzanie transakcjami 238zasi g ziarna 79 254zasoacuteb REST 310zegar 243ziarno
CDI 252EJB 223 247 298encyjne 185 223JavaBeans 76sesyjne 223 228
bezstanowe 224stanowe 224
sterowane komunikatami 242 271 280 282zarz dzane 143 145
addressBean 163CustomerController 180
zintegrowane rodowisko programistyczne IDE 15zmienna rodowiskowa JAVA_HOME 22znacznik
ltcchoosegt 98 101ltcforEachgt 98 104ltcifgt 98ltccattributegt 162ltccimplementationgt 162
ltclassgt 265ltfvalidatorgt 151lthcommandButtongt 142lthformgt 138 178lthgraphicImagegt 141lthlabelgt 141lthmessagegt 141lthoutputLabelgt 141lthpanelGridgt 139lthpanelGroupgt 142lthselectOneMenugt 141ltinterceptorgt 265ltpcalendargt 171ltpcommandButtongt 167ltpdialoggt 167ltpinputMaskgt 177ltpmessagesgt 170ltptabViewgt 173ltpwizardgt 178ltsqlparamgt 116ltsqlquerygt 109ltsqlupdategt 114 117ltuicompositiongt 156ltuidefinegt 156ltuiinsertgt 156
znacznikiJSTL 98niestandardowe JSP 122PrimeFaces 167SQL-owe 107
roacuted o danych 111 188
danie GET 78danie POST 78
Kup książkę Poleć książkę