Você está na página 1de 11

21/04/2015

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&gt;.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

Você também pode gostar