13
8 Like Like Tweet 0 also read: Follow @javabeat Advertise Here 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web- app_2_4.xsd" 5 version="2.4"> 6 7 <context-param> 8 <param-name>contextConfigLocation</param-name> 9 <param-value> 10 /WEB-INF/config/spring-fc-config.xml 11 </param-value> 12 </context-param> 13 14 <context-param> 15 <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 16 <param-value>.xhtml</param-value> 17 </context-param> 18 19 <context-param> 20 <param-name>facelets.DEVELOPMENT</param-name> 21 <param-value>true</param-value> 22 </context-param> 23 24 <context-param> 25 <param-name>facelets.REFRESH_PERIOD</param-name> 26 <param-value>1</param-value> 27 </context-param> 28 29 <filter> 30 <filter-name>charEncodingFilter</filter-name> 31 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 32 <init-param> Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/ 1 of 13 08-07-2015 23:06

Integrating Spring Web Flow With JSF

Embed Size (px)

DESCRIPTION

jsf

Citation preview

8 Like Like Tweet 0also r ead:Fol low @j avabeatAdvertise Here1 2 67 8 cont ext Conf i gLocat i on9 10 / WEB- I NF/ conf i g/ spr i ng- f c- conf i g. xml11 12 1314 15 j avax. f aces. DEFAULT_SUFFI X16 . xht ml 17 1819 20 f acel et s. DEVELOPMENT21 true22 2324 25 f acel et s. REFRESH_PERI OD26 127 2829 30 char Encodi ngFi l t er 31 or g. spr i ngf r amewor k. web. f i l t er . Char act er Encodi ngFi l t er 32 Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/1 of 13 08-07-2015 23:0633 encodi ng34 UTF- 835 36 37 f or ceEncodi ng38 true39 40 4142 43 char Encodi ngFi l t er 44 / *45 4647 48 or g. spr i ngf r amewor k. web. cont ext . Cont ext Loader Li st ener 49 5051 52 Resour cesSer vl et 53 or g. spr i ngf r amewor k. j s. r esour ce. Resour ceSer vl et 54 055 5657 58 Resour cesSer vl et 59 / r esour ces/ *60 6162 63 Spr i ngMVCDi spat cher Ser vl et 64 or g. spr i ngf r amewor k. web. ser vl et . Di spat cher Ser vl et 65 66 cont ext Conf i gLocat i on67 68 69 270 7172 73 Spr i ngMVCDi spat cher Ser vl et 74 / spr i ng/ *75 7677 78 FacesSer vl et 79 j avax. f aces. webapp. FacesSer vl et 80 181 8283 84 FacesSer vl et 85 *. f aces86 8788 89 i ndex. ht ml 90 9192 1 2 1617 18 1920 21 22 2324 2526 27 28 29 / t est =f l owCont r ol l er30 Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/2 of 13 08-07-2015 23:0631 32 33 34 35 3637 38 39 4041 42 43 44 45 4647 1 2 56 7 8 9 com. sun. f acel et s. Facel et Vi ewHandl er 10 11 1 2 3 4 5 1 2 56 7 89 1 2 3 4 5 1 2 3 6 78 910 11 1213 14 Sampl epagewhi chi l l ust r at est hei nt egr at i onbet weenJ SFandSpr i ngWebFl ow15 1617 1819 20 1 2 89 10 1112 13 14 15 Cl i ckher et oi nvoket heFacel et spage16 17 18 19 1 2 56 78 9 Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/4 of 13 08-07-2015 23:0610 11 1213 14 15 17 18 1920 1 2 3 8 910 1112 13 Empl oyeeSear chPage14 1516 17 18 Sear chEmpl oyee: 19 20 21 22

23 24 25 2627 2829 30 1 2 3 8 910 1112 13 Sear chResul t s14 1516 1718 19 20 EmpI d21 22 23 Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/5 of 13 08-07-2015 23:0624 Name25 26 27 28 Dat eof Bi r t h29 30 31 32 Desi gnat i on33 34 35 3637 38 Sear chAgai n39 4041 4243 4445 46 1 package net . j avabeat . spr i ng. webf l ow. j sf . sear ch. empl oyee;23 i mport j ava. i o. Ser i al i zabl e;4 i mport j ava. ut i l . Dat e;56 publ i c cl assEmpl oyeei mpl ementsSer i al i zabl e{78 pri vate St r i ngi d;9 pri vate St r i ngname;10 pri vate Dat edob;11 pri vate St r i ngdesi gnat i on;1213 publ i cSt r i ngget Desi gnat i on( ) {14 return desi gnat i on;15 }1617 publ i c voi d set Desi gnat i on( St r i ngdesi gnat i on) {18 thi s. desi gnat i on= desi gnat i on;19 }2021 publ i cDat eget Dob( ) {22 return dob;23 }2425 publ i c voi d set Dob( Dat edob) {26 thi s. dob= dob;27 }2829 publ i cSt r i ngget I d( ) {30 return i d;31 }3233 publ i c voi d set I d( St r i ngi d) {34 thi s. i d= i d;35 }3637 publ i cSt r i ngget Name( ) {38 return name;39 }4041 publ i c voi d set Name( St r i ngname) {42 thi s. name= name;43 }4445 }Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/6 of 13 08-07-2015 23:061 package net . j avabeat . spr i ng. webf l ow. j sf . sear ch. empl oyee;23 i mport j ava. i o. Ser i al i zabl e;45 publ i c cl assEmpl oyeeCr i t er i ai mpl ementsSer i al i zabl e{67 pri vate stati c fi nal l ong ser i al Ver si onUI D =1L;8 pri vate St r i ngempName;910 publ i cSt r i ngget EmpName( ) {11 return empName;12 }1314 publ i c voi d set EmpName( St r i ngempName) {15 thi s. empName= empName;16 }1718 }1 package net . j avabeat . spr i ng. webf l ow. j sf . sear ch. empl oyee;23 i mport j ava. ut i l . Ar r ayLi st ;4 i mport j ava. ut i l . Dat e;5 i mport j ava. ut i l . Li st ;67 publ i c cl assEmpl oyeeSear chSer vi ce{89 pri vate stati cLi st al l Empl oyees;1011 publ i cLi st f i ndEmpl oyees( Empl oyeeCr i t er i acr i t er i a) {1213 Li st sear chedEmpl oyees= newAr r ayLi st ( ) ;14 i f ( cr i t er i a== nul l ) {15 return al l Empl oyees;16 }1718 St r i ngsear chEmpName= cr i t er i a. get EmpName( ) ;19 i f ( sear chEmpName! = nul l && sear chEmpName. t r i m( ) . l engt h( ) > 0) {2021 for ( Empl oyeeanEmpl oyee: al l Empl oyees) {2223 i f ( anEmpl oyee. get Name( ) . cont ai ns( sear chEmpName) ) {24 sear chedEmpl oyees. add( anEmpl oyee) ;25 }26 }27 return sear chedEmpl oyees;28 }el se{29 return al l Empl oyees;30 }31 }3233 stati c{3435 al l Empl oyees= newAr r ayLi st ( ) ;36 al l Empl oyees. add( empl oyee( "10000", "St eveCl ar k", newDat e( 1960, 6, 12) , "Empl oyee") ) ;37 al l Empl oyees. add( empl oyee( "10000", "Al f r edRay", newDat e( 1954, 4, 17) , "Manager ") ) ;38 al l Empl oyees. add( empl oyee( "10000", "Rober t Woul sh", newDat e( 1944, 2, 16) ,"Di r ect or ") ) ;39 }4041 stati cEmpl oyeeempl oyee( St r i ngi d, St r i ngname, Dat edob, St r i ngdesi gnat i on) {4243 Empl oyeeempl oyee=newEmpl oyee( ) ;44 empl oyee. set I d( i d) ;45 empl oyee. set Name( name) ;46 empl oyee. set Dob( dob) ;47 empl oyee. set Desi gnat i on( desi gnat i on) ;48 return empl oyee;49 }50 }Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/7 of 13 08-07-2015 23:061 2 1920 21 2223 24 25 26 27 2829 30 31 3233 3435 36 37 38 3940 41 42 43 / bookMai n=f l owCont r ol l er44 / bookSear chPage=f l owCont r ol l er45 / bookAdd=f l owCont r ol l er46 47 48 49 50 Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/8 of 13 08-07-2015 23:0651 5253 54 55 5657 58 59 60 61 6263 6465 66 67 6869 70 71 72 73 74 7576 77 78 79 80 81 8283 1 2 6 7 or g. hi ber nat e. ej b. Hi ber nat ePer si st ence8 net . j avabeat . spr i ng. webf l ow. j sf . book. Book9 10 11 12 13 14 15 16 1 package net . j avabeat . spr i ng. webf l ow. j sf . book;23 i mport j ava. i o. Ser i al i zabl e;4 i mport j avax. per si st ence. Ent i t y;5 i mport j avax. per si st ence. Gener at edVal ue;6 i mport j avax. per si st ence. Gener at i onType;7 i mport j avax. per si st ence. I d;89 @Ent i t y10 publ i c cl assBooki mpl ementsSer i al i zabl e{1112 pri vate stati c fi nal l ong ser i al Ver si onUI D =1L;1314 @I d15 @Gener at edVal ue( st r at egy= Gener at i onType. AUTO)16 pri vate Longi d;17 pri vate St r i ngname;18 pri vate St r i ngcat egor y;19 pri vate St r i ngaut hor ;20 pri vate doubl e pr i ce;2122 publ i cSt r i ngget Aut hor ( ) {23 return aut hor ;24 }2526 publ i c voi d set Aut hor ( St r i ngaut hor ) {27 thi s. aut hor = aut hor ;Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/9 of 13 08-07-2015 23:0628 }2930 publ i cSt r i ngget Cat egor y( ) {31 return cat egor y;32 }3334 publ i c voi d set Cat egor y( St r i ngcat egor y) {35 thi s. cat egor y= cat egor y;36 }3738 publ i cSt r i ngget Name( ) {39 return name;40 }4142 publ i c voi d set Name( St r i ngname) {43 thi s. name= name;44 }4546 publ i c doubl e get Pr i ce( ) {47 return pr i ce;48 }4950 publ i c voi d set Pr i ce( doubl e pr i ce) {51 thi s. pr i ce=pr i ce;52 }5354 publ i cLongget I d( ) {55 return i d;56 }5758 publ i c voi d set I d( Longi d) {59 thi s. i d= i d;60 }6162 @Over r i de63 publ i c i nt hashCode( ) {64 i nt hash= 0;65 hash+= ( i d! = nul l ?i d. hashCode( ) : 0) ;66 return hash;67 }6869 @Over r i de70 publ i c bool ean equal s( Obj ect obj ect ) {71 i f ( ! ( obj ect i nstanceof Book) ) {72 return fal se;73 }74 Bookot her =( Book) obj ect ;75 i f ( ( thi s. i d== nul l && ot her . i d! = nul l ) | | ( thi s. i d! = nul l &&! thi s. i d. equal s( ot her . i d) ) ) {76 return fal se;77 }78 return true;79 }8081 @Over r i de82 publ i cSt r i ngt oSt r i ng( ) {83 return "net . j avabeat . spr i ng. webf l ow. j sf . book. Book[ i d=" + i d+"] ";84 }8586 }1 package net . j avabeat . spr i ng. webf l ow. j sf . book;23 i mport j ava. ut i l . Li st ;45 publ i c i nterface BookSer vi ce{67 Li st f i ndAl l Books( ) ;89 Li st f i ndBooks( BookSear chCr i t er i acr i t er i a) ;1011 voi d cr eat eBook( St r i ngname, St r i ngcat egor y, St r i ngaut hor , doubl e pr i ce) ;1213 }1 package net . j avabeat . spr i ng. webf l ow. j sf . book;23 i mport j ava. ut i l . Li st ;4 i mport j avax. per si st ence. Ent i t yManager ;5 i mport j avax. per si st ence. Per si st enceCont ext ;6 i mport j avax. per si st ence. Quer y;7 i mport or g. spr i ngf r amewor k. st er eot ype. Reposi t or y;8 i mport or g. spr i ngf r amewor k. st er eot ype. Ser vi ce;Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/10 of 13 08-07-2015 23:069 i mport or g. spr i ngf r amewor k. t r ansact i on. annot at i on. Tr ansact i onal ;1011 @Ser vi ce( "bookSer vi ce")12 @Reposi t or y13 publ i c cl assBookSer vi ceI mpl i mpl ementsBookSer vi ce{1415 pri vate Ent i t yManager em;1617 @Per si st enceCont ext18 publ i c voi d set Ent i t yManager ( Ent i t yManager em) {19 thi s. em= em;20 }2122 @Tr ansact i onal ( r eadOnl y=true)23 publ i cLi st f i ndAl l Books( ) {24 Quer yquer y= em. cr eat eQuer y( "sel ect bookf r omBookbook") ;25 Li st r esul t s= quer y. get Resul t Li st ( ) ;2627 i f ( r esul t s==nul l | | r esul t s. si ze( ) == 0) {28 cr eat eTest Books( ) ;29 return quer y. get Resul t Li st ( ) ;30 }el se{31 return r esul t s;32 }33 }3435 pri vate voi d cr eat eTest Books( ) {3637 cr eat eBook( "J avaPr ogr ammi ng", "Techni cal ", "J ames", 1110. 00) ;38 cr eat eBook( "Li f eAf t er Deat h", "Spi r i t ual ", "Unknown", 3140. 00) ;39 cr eat eBook( "Al l About Numer ol ogy", "Numer ol gy", "Ri char d", 6130. 00) ;40 }4142 @Tr ansact i onal ( r eadOnl y=true)43 publ i cLi st f i ndBooks( BookSear chCr i t er i acr i t er i a) {4445 i f ( cr i t er i a== nul l ) {46 return f i ndAl l Books( ) ;47 }4849 St r i ngname= cr i t er i a. get Name( ) ;50 St r i ngaut hor = cr i t er i a. get Aut hor ( ) ;5152 St r i ngquer y= "sel ect bookf r omBook";53 i f ( name! = nul l && name. t r i m( ) . l engt h( ) > 0) {54 quer y= quer y+"wher eupper ( book. name) = : name";55 }5657 i f ( aut hor ! = nul l && aut hor . t r i m( ) . l engt h( ) > 0) {58 i f ( quer y. cont ai ns( "wher e") ) {59 quer y= quer y+ "and";60 }el se{61 quer y= quer y+ "wher e";62 }63 quer y= quer y+"upper ( book. aut hor ) = : aut hor ";64 }6566 Quer yquer yObj ect =em. cr eat eQuer y( quer y) ;67 quer yObj ect . set Par amet er ( "name", name) ;68 quer yObj ect . set Par amet er ( "aut hor ", aut hor ) ;6970 Li st r esul t s= quer yObj ect . get Resul t Li st ( ) ;71 i f ( r esul t s== nul l | | r esul t s. si ze( ) ==0) {72 cr eat eTest Books( ) ;73 }74 return quer yObj ect . get Resul t Li st ( ) ;75 }7677 @Tr ansact i onal ( r eadOnl y=true)78 publ i c voi d cr eat eBook( St r i ngname, St r i ngcat egor y, St r i ngaut hor , doubl e pr i ce) {7980 Bookbook= newBook( ) ;81 book. set Name( name) ;82 book. set Cat egor y( cat egor y) ;83 book. set Aut hor ( aut hor ) ;84 book. set Pr i ce( pr i ce) ;85 em. per si st ( book) ;86 }87 }1 2 56 78 9 10 11 12 Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/11 of 13 08-07-2015 23:0613 14 1516 17 18 20 21 2223 1 Comment Sort byRafael Ruiz Tabares Bristol, United KingdomVery nice work! Thank you for writing this article. Now I'm developinga webapp on hibernate,spring core, security, social,webflow and jsf2,primefaces, prettyfaces. And I can say that it's a puzzle!Like Reply Feb 12, 2014 3:16pmFacebook Comments PluginAdd a comment...Unify your ALM tools nowAre your applications working in silos? ConnectALL unifiesthem!Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/12 of 13 08-07-2015 23:06What is the difference between JRE,JVM andJDK? Quartz Job Scheduler Example Code Spring 5 AnnouncedQuartz Scheduler Tutori al JAVABEATUnique Method Regrows Lost Hair(Do This Daily)Lifestyle Journal5 Worst Shift Knobs EverWeb2Carz.comUltimate Guide to RehabTheFix.com0 Comments1Integrating Spring Web Flow with JSF http://www.javabeat.net/integrating-spring-web-flow-with-jsf/13 of 13 08-07-2015 23:06