Escolar Documentos
Profissional Documentos
Cultura Documentos
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
JAVA_HOME
DesenvolvendoumaaplicaoJavaWebJSF
parte1
04 Tuesday Mar2014
POSTEDBYGILBERTOASTOLFIINJAVAWEB
4COMMENTS
Esteoprimeiropostdeumconjuntoqueirconstruirumaaplicaojavaweb.Pretendese
exemplificarousodasseguintestecnologias:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Maven
JSF2.2
Facelets
Hibernate
MVCarquiteturaem4camadas.
JNDIPooldeConexo.
InterceptingFilter
Primefaces
SpringSecurity
SpringMail
Internacionalizao
iReportseJasperReports
HibernateSearch
Antesdecomearmosnecessrioalgumasconfiguraesemnossoambienteeclipsede
desenvolvimento.Soelas:
1. InstaleopluginJBossTools.Vejaaqui.
2. InstaleoMaveneopluginparaeclipsem2e.Vejaaqui.
NestepostiremoscriarumprojetousandooMavenecriaraestruturaparanossaaplicao
JSF.Vamosiniciaracriaodenossoprojeto.
NoeclipseescolhanomenuFile>New>Project.Najanelaqueaparece,escolhaMaven
ProjectecliqueemNext.VejaaFigura1.
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
1/11
21/04/2015
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
Figura1.NovoprojetoMaven
MarqueasopesemdestaquenaFigura2abaixoecliqueemNext.
Figura2.Informandoalocalizaodoprojeto.
Naprximaetapa,preenchaasinformaesdoprojeto.ObservequeemPackagingvoc
deveescolherwarporsetratardeumprojetoWeb.CliqueemFinish.VejaFigura3.
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
2/11
21/04/2015
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
Figura3.Informaesdoprojeto.
Seuprojetoagoraestcriado.VamosconfigurloparaquepossamosusarJava1.7eServlets
3.0.CliquecomobotodireitodomousesobreoprojetoevaomenuemProperties>Java
CompileredefinaoCompilercompliancelevelpara1.7.CliqueemApply,najanelade
confirmaoqueirabrircliqueemYeseemseguidaemOk.VejaFigura4.
Figura4.Definindoversodojavaparaoprojeto.
CliquecomobotodireitodomousesobreoprojetoevaomenuemProperties>Project
Facetseapliqueasseguintesconfiguraes.VejaFigura5:
DynamicWebModuleversion:3.0
Javaversion:1.7
JavaServerFacesversion:2.1
CliqueemFurtherconfigurationrequiredefaaasconfiguraescomonaFigura6.
ObservequevoctemqueapenasescolherDisableLibraryConfigurationnacomboboxe
clicaremOk.
CliqueemApplyeemseguidaemOk.VejaFigura5.
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
3/11
21/04/2015
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
Figura5.ConfigurandoprojetoMavenJSFWeb.Figura6.Desabilitandoousodebibliotecas.
Agoradevemosresolveroproblemadoarquivofacesconfig.XMLqueestnaverso2.1,
masnossaintenousaraverso2.2doJSF.
Procureoarquivofacesconfig.XMLnodiretriodoprojeto/src/main/webapp/WEBINF.Ele
estcomaseguinteconfigurao,comonaFigura7.
Figura7.facesconfig.xmlpreparadoparausaraverso2.1doJSF.
Modifiqueaparteselecionadaxsi:schemaLocationcomoabaixo,inclusiveversion.
xsi:schemaLocation=http://xmlns.jcp.org/xml/ns/javaee/webfacesconfig_2_2.xsd
version=2.2.NaFigura8apresentadooaquivoalterado.
Figura8.facesconfig.xmlpreparadoparausaraverso2.2doJSF.
VamosadicionarasdependnciasmnimasdeumprojetoJSF.InclusiveoPrimefaces.
Abraoarquivopom.xmlqueestnaraizdoprojeto.Emseguidaadicioneasseguintes
dependncias:Dalinha10a17edalinha37a46sodependnciasdoPrimefaces.Dalinha20
a34soasdependnciasdoJSF.Qualqueroutradependnciaquedesejeadicionaraoseu
projeto,comoporexemplo,JUnit,bastaadicionlaaoarquivopom.xml.Vejacomoficouo
pom.xmlabaixo.
1
2
3
4
5
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.
<modelVersion>4.0.0</modelVersion>
<groupId>com.ofoka</groupId>
<artifactId>ofoka</artifactId>
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
4/11
21/04/2015
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
<version>0.0.1</version>
<packaging>war</packaging>
<name>Ofoka</name>
<repositories>
<repository>
<id>primerepo</id>
<name>PrimeFacesMavenRepository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsfapi</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsfimpl</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servletapi</artifactId>
<version>3.0.1</version>
</dependency>
<!PRIMEFACES>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>commonsfileupload</groupId>
<artifactId>commonsfileupload</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
</project>
AbaixoapresentadoaconfiguraodoJSFnoarquivoweb.xml.
1
2
3
4
5
6
7
8
9
10
<?xmlversion="1.0"encoding="UTF8"?>
<webappxmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/x
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/
version="2.5">
<displayname>ofoka</displayname>
<servlet>
<servletname>FacesServlet</servletname>
<servletclass>javax.faces.webapp.FacesServlet</servletclass>
<loadonstartup>1</loadonstartup>
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
5/11
21/04/2015
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
</servlet>
<servletmapping>
<servletname>FacesServlet</servletname>
<urlpattern>*.jsf</urlpattern>
</servletmapping>
<servletmapping>
<servletname>FacesServlet</servletname>
<urlpattern>*.faces</urlpattern>
</servletmapping>
<servletmapping>
<servletname>FacesServlet</servletname>
<urlpattern>/faces/*</urlpattern>
</servletmapping>
<servletmapping>
<servletname>FacesServlet</servletname>
<urlpattern>*.xhtml</urlpattern>
</servletmapping>
</webapp>
Dalinha7alinha11estasendoconfiguradooServletdoJSF.FacesServletoServletprincipal,
responsvelparalidarcomtodososrequest.Eleatuacomocontroladorcentral.EsteServlet
inicializaoscomponentesJSFantesdoJSPserexibida[1].Dalinha12alinha27especificada
opadrodeURLparaoqual,oServlet,dadoem<servletname>,deveserchamado.Observe
queo<servletname>em<servletmapping>especificadoFacesServlet(linhas13,17,21e25),o
mesmo<servletname>de<servlet>nalinha8.Issosignificaquequandoocorrerqualquerum
dospadresdeURLmapeadosdalinha12a27,oServletFacesServlet,oumelhor,
javax.faces.webapp.FacesServlet,seracionado.
VejanaFigura9comoficouaestruturadenossoprojeto.
Figura9.EstruturadoprojetoMaven
VamosagoracriarumapginaHelloWorldemnossoprojetoeusarumManagedBeanpara
proveramensagem.
CliquecomobotodireitodomouseemJavaResources/src/main/javaeselecioneNew
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
6/11
21/04/2015
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
CliquecomobotodireitodomouseemJavaResources/src/main/javaeselecioneNew
>Class.Abaixoestocdigodaclassecriada.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
packagecom.myimage.controller.initial;
importjavax.annotation.PostConstruct;
importjavax.faces.bean.ManagedBean;
importjavax.faces.bean.RequestScoped;
@RequestScoped
@ManagedBean
publicclassIndex{
@PostConstruct
publicvoidinit(){
System.out.println("Beanexecutado!");
}
publicStringgetMessage(){
return"HelloWorldJSF!";
}
}
Nocdigoacimacriamosumaclassejavaqueumbeangerencivel(@ManagedBeanlinha
8).ManagedBeansoobjetosgerenciadospelocontainer.NestecasoesseManagedBean
usadopeloJSFeseutempodevidaaolongodavidadeumarequisioHTTPrequest
response(@RequestScopedlinha7)[1].NestecasoesseManagedBeanserusadocomoum
beandeapoiofornecendoalgicadaaplicao,ouseja,eleestarassociadoacomponentesde
umapgina,quevaiserapresentadaemumcdigologoafrente.Nalinha11usadaa
anotao@PostConstruct,oobjetivodestaanotaofazercomqueomtodo(init()nestecaso)
sejainvocadoquandoobeancriadopelaprimeiravez.
Natabelaabaixoapresentadooutrostiposdeanotaesdeescopo[2].
Escopo
Descrio
@RequestScoped
ObeanviveaolongodavidadeumarequisioHTTPrequest
response.
@NoneScoped
BeanviveaolongdeumanicaavaliaoEL.Elessecriamem
cimadeumaavaliaoELesodestrudasimediatamenteaps
aavaliaoEL
@ViewScoped
Beanviveenquantoousurioestinteragindocomamesma
visoJSFnajaneladobrowser.Elesecriouemcimadeum
pedidoHTTPeserdestrudoquandoousurioforparauma
visodiferente.
@SessionScoped
BeanviveaolongodeumasessoHTTP.
@ApplicationScoped
BeancriadoapsaprimeirasolicitaoHTTPenvolvendoobean
emquestoesodestrudasquandooaplicativowebfechado.
@CustomScoped
Beanvivedependendodacustomatizao.
VamoscriarnossapginaparaacionarnossoManagedBeancriadoanteriormente.Vato
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
7/11
21/04/2015
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
VamoscriarnossapginaparaacionarnossoManagedBeancriadoanteriormente.Vato
diretriodoprojeto/src/main/webappecliquecomobotodireitodomouse,selecioneNew
>Folderecrieumapastacomonomepublic.Cliquecomobotodireitodomousesobre
/src/main/webapp/public(pastarecmcriada),selecioneNew>XHTMLPage(paraser
possvelacriaodepginasxhtmlcomtamplatesvocdeveinstalaropluginJboosTools
antes),nomeieapginacomindex.xhtmlecliqueemFinish.VejaFigura9.
Figura9.Criandoumapginaxhtml.
Abaixoapresentadoocdigodapgina.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>HelloJSF!</title>
</h:head>
<h:body>
#{index.message}
</h:body>
</html>
ApginawebconectaaobeangerenciadoatravsdaExpressionLanguage(EL)#
{index.message},querecuperaovalorretornadopelomtodogetMessage().Observeousode
indexparareferenciarobeangerenciadoIndex.Senenhumnomeforespecificadonaanotao
@ManagedBean,omanagedbeansempreacessadocomaprimeiraletradonomedaclasseem
minscula.
Adicioneestetrechodecdigoabaixonoarquivoweb.xml.Issoparaquenossapgina
recmcriadasejaapginainicialdaaplicao.
1
2
<welcomefilelist>
<welcomefile>public/index.xhtml</welcomefile>
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
8/11
21/04/2015
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
</welcomefilelist>
PararodaraaplicaocliquecomobotodireitodomousesobreoprojetoeselecioneRunAs
>RunonServer,escolhaoservidorTomcat(claroquejdeveestarpreviamenteconfigurado
noeclipse)ecliqueemFinish,comomostraaFigura10.
Figura10.Rodandoaaplicao.
Finalmentesuapginaeapresentadanobrowser,comonaFigura11.
Figura11.Pginaapresentadanobrowser.
MasantesdapginaserapresentadaamensagemBeanexecutado!aparecernoconsoledo
eclipsedevidoaanotao@PostConstructnomtodoinit()doManagedBeanIndex.
Noprximopostcontinuaremosnossaaplicao.
Referncias
[1]ORACLE.JavaServerFacesTechnology.In:________.JavaEE6Tutorial.RedwoodCity,
2010.p.97104.
[2]TUTORIALSPOINTJSF.Disponvelem:
<http://www.tutorialspoint.com/jsf/jsf_managed_beans.htm>.Acessadoem:03/03/2014.
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
9/11
21/04/2015
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
About these ads
9%
11%
R$2,451.26
UltrabookAsus,Intel
thoughtsonDesenvolvendoumaaplicaoJavaWebJSF
parte1
1. Pingback:DesenvolvendoumaaplicaoJavaWebJSFCriandotemplatesparte2|
JAVA_HOME
2. said:Leonardo
July31,2014at1:29pm
Cara,parabnspelowalkthrough.Desenvolvoparadesktopemobilee,sinceramente,no
tenhomuitoconhecimentocomdesenvolvimentoweb.Meajudoumuitoaentenderalguns
conceitos,deformabemdidticaeclara.Favoritadoecompartilhado!
REPLY
3. said:GilbertoLeo
March2,2015at6:54pm
Parabnsmeajudoumuitoobrigadopelopost.
REPLY
4. said:halfms
March2,2015at6:56pm
Parabnspelopostmuitoobrigado.
REPLY
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
10/11
21/04/2015
DesenvolvendoumaaplicaoJavaWebJSFparte1|JAVA_HOME
BlogatWordPress.com.TheChateauTheme.
Follow
FollowJAVA_HOME
BuildawebsitewithWordPress.com
https://gilbertoastolfi.wordpress.com/2014/03/04/desenvolvendoumaaplicacaojavawebjsfparte1/
11/11