Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek...

36

Transcript of Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek...

Page 1: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 2: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 3: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 4: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 5: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 6: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 7: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 8: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 9: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 10: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 11: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 12: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 13: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 14: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 15: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 16: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 17: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 18: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 19: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 20: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 21: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 22: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 23: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 24: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 25: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 26: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 27: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 28: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 29: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 30: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 31: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 32: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 33: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko

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ę

Page 34: Java EE 6. Tworzenie aplikacji w NetBeans 7Java EE 6. Tworzenie aplikacji w NetBeans 7 166 Rysunek 5.1. Tworzenie aplikacji z bibliotekÈ PrimeFaces Po utworzeniu projektu rodowisko