Você está na página 1de 11

1

PROFESSORA
VERONICEDEFREITAS
Graduao:TecnologiaemProcessamento
deDados(UNOPAR)
Especializao:AnliseeDesenvolvimento
deSistemas(UNIFIL)
Mestrado:CinciadaComputao
(UFRGS)
ProgramaoWebII
Aula1
JSF JavaServerFaces
ProgramaoWebII
EMENTA: Modelagemdeframework
paradesenvolvimentoWEB. ArquiteturaMVC(model
viewcontroller). FuncionamentodaWeb.Introduo
aoframework:plataformadedesenvolvimento
paraWeb.Framework:conceitosbsicos.
Framework:componentes.Bibliotecas
decomponentes.APIparaacessoaobancodedados.
Frameworksdepersistncia.Tecnologias
paraprogramaoWeb.
OBJETIVOS:desenvolver
aplicaesWEButilizando
framework
Resumo
OJavaServerFaces(JSF)umframeworkdeinterface
deusurio(IU)paraaplicaesJavaWeb.Tambm
comoamaioriadosframeworks,adotaomodelo
dearquiteturaMVC(Model View Controller),
comoobjetivodeaumentaraprodutividade
daconstruodeinterfacesgrficaswebbaseadas
emtemplates edisponibilizandoumconjunto
decomponentesvisuais
reutilizveis.
PALAVRASCHAVE:JSF,MVC,
FRAMEWORK,TEMPLATES
Estrutura
Introduo Desenvolvimentoweb Java
ContextualizaroJavaServerFaces(JSF)
Prepararoambiente
JSF Projetoexemplo(01)
JSF Projetoexemplo02(ManagedBean/
Escopo)
Materialdeapoio
2
PlataformaJavaJ2EE
AplataformaJavaJ2EE (Java2EnterpriseEdition)
surgiucomoobjetivodepadronizaresimplificar
acriaodeaplicaesWeb.
umadastrsplataformasdeJavasomandose
aJ2ME (Java2MicroEdition),voltada
parapequenosdevices comocelulares
epalmtops,eJ2SE (Java2
Standart Edition),voltada
paraaplicaescliente
ecompostapelasAPIs bsicas
deJava.
EVOLUO J2EE
http://cooldevstuff.wordpress.com/
JSF(JavaServerFaces)
OJavaServerFacesatecnologiapadro
doJava2Plataform EnterpriseEdition (J2EE)
paradesenvolveraplicaesweb.
Herdadastecnologias(JSP)JavaServesPages
eServlets,eextende seusconceitos
comumciclodevidaeumconjunto
decomponenteserecursos
avanadosefocados
nodesenvolvimentoparaweb.
JSF(JavaServerFaces)
JavaServerFaces (JSF)um framework MVC baseado
em Java paraaconstruodeinterfaces
deusurio baseadasem componentes para aplicaes
web.
Possuiummodelodeprogramaodirigidoaeventos,
abstraindoosdetalhesdamanipulaodoseventos
eorganizaodoscomponentes,permitindo
queoprogramadorseconcentre
nalgicadaaplicao.
http://pt.wikipedia.org/wiki/Java
Server_Faces
Opadro MVC ModelViewController
Parasabermais:
http://www.subrotina.com.br/o
conceitoeasduvidassobreo
mvc/
3
PadrodearquiteturaMVC
(Model View Controller)
Propeasepararasresponsabilidades
deumaaplicaoemcomponentesdemodelo,viso
econtrole:
Modelo:formadoporentidadesdenegcio
querepresentamosdadosdosistema.
View. a apresentao, oqueaparece,
oquevisualizado porquemusaosistema. .
Controller. Comosugere
onome,responsvel
porcontrolartodoofluxo
doprograma.
EmJSF,ocontrolefeitoatravs
deumservlet chamadoFaces
Servlet.
ArquiteturadoJSFbaseadanoMVC
Servlet Container
ExistemvriosServlet Containernomercado,
osmaisimportantesso:
Tomcat;
Glassfish;
Jboss;
Jetty;
Entreoutros.
Biblioteca JSF
OcontinerServletTomcat,porpadro,no
possuisuportediretoaoJavaServerFaces,ou
seja,nocontmasbibliotecasnecessrias
paraodesenvolvimentocomomesmo.
Implementao JSF
Possuiduasimplementaesbemconhecidas:
SunMojarra implementaodereferncia
MyFaces daApache
Fonte:CAELUM(2013)
EspecificaoJSF2
JSR314
)
Mojarra
(implementao
referencial)
Apache
MyFaces
http://javaserverfaces.java.net/
http://myfaces.apache.org/
DownloadJSF
http://javaserverfaces.java.net/
Download:javax.faces.2.1.20.jar.
CopieoarquivoparaapastaWEB
INF/lib doprojeto.
4
SOFTWARES
1)SDKJava1.7:
http://www.oracle.com/technetwork/java/jav
ase/downloads/index.html
2)Tomcat:
http://tomcat.apache.org/download70.cgi
3)EclipseJuno:
http://www.eclipse.org/
downloads/packages/release/
juno/sr1
SOFTWARES
4)JSF2.1:
http://javaserverfaces.java.net/
5)Primefaces 3.3.1
http://www.primefaces.org/downloads.html
6)MySQL5.5:
http://dev.mysql.com/
downloads/
7)Hibernate3.5
http://www.hibernate.org/)
SOFTWARES outrasopes
Netbeans 7.2:
http://netbeans.org/community/releases/72/
Glassfish 3.2:
JvemembutidonoNetbeans versoJEE
Perguntas
Preparandooambiente
Preparando oambiente
Servlet Conteiner Tomcat 7
(http://tomcat.apache.org/download70.cgi).
IDEoeclipseJuno
(http://www.eclipse.org/downloads/packages
/release/juno/sr1)
5
Criando umprojeto parateste doJSF ServerRuntime(Tomcat)
Jars doJSF
informeumnomeparaoJSF
Adicioneojar doJSF
Usandoomesmoprocedimento
seradicionadososjars
doHibernate,conectordoMySQL,
Primefaces,etc (sercriado
umnew/add External JARs)
paracadaumseparadamente.
ProjetonewoutrosWeb
DynamicProject
Dynamic WebProject
CliqueemNEXTat
chegarnessaetapa
6
resultado
JardoJSFcopiadoparaapastalib (poder
copiarusandooWindowsexplorer
eatualizaroprojeto)cliqueboto
direitonoprojeto
Crieosarquivos:
index.html
index.xhtml
...
<welcomefilelist>
<welcomefile>index.html</welcomefile>
</welcomefilelist>
<servlet>
<servletname>FacesServlet</servletname>
<servletclass>javax.faces.webapp.FacesServlet</servlet
class>
<loadonstartup>1</loadonstartup>
</servlet>
<servletmapping>
<servletname>FacesServlet
</servletname>
<urlpattern>*.jsf</urlpattern>
</servletmapping>
...
web.xml web.xml
web.xml
Osarquivosdeconfigurao(facesconfig.xml
eweb.xml)soresponsveisporrealizar
associaesemapeamentosdeaes
epeladefinioderegrasdenavegao.
Osmanipuladoresdeeventossoresponsveis
porreceberosdadosvindos
dacamadadevisualizao,
acessaromodelo,eento
devolveroresultado
paraoFacesServlet.
Lib JSF
Apscriaroprojeto
COPIEabiblioteca
paraapastaLIB
deseuprojeto(lembre
sedeatualizar)
Arquivo idex.html
arquivo /new/other/web/HTMLfile
(template4.01transitional)
<metahttpequiv="REFRESH"content="0;url=index.jsf">
<?xmlversion='1.0'encoding='UTF8'?>
<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1
transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Teset Facelet</title> </h:head>
<h:body>
Ol Mundo.
</h:body>
</html>
arquivo /new/other
/web/XHTMLfile
(template1.0
transitional)
Arquivo:index.xhtml
7
Executaroprojeto UsandooJavaServerFaces
AespecificaodoJSFforneceumconjunto
decomponentesvisuaisbsicos
emsuaimplementaodereferncia.
BibliotecaHTML(siglah):possuicomponentesque
representamdiversoselementosHTMLeabiblioteca
Namespace:xmlns:h=http://java.sun.com/jsf/html
BibliotecaCore(siglaf):responsvelportarefas
comunsnodesenvolvimento
desistemas,como
internacionalizao,validao
econversodedadosdeentrada.
Namespace:xmlns:f="http://java.
sun.com/jsf/core
JSF BibliotecaHTML
xmlns:h=http://java.sun.com/jsf/html
Tag Descrio
body Representaatag <html>doHTML
Button Criaumlink<inputtype=button>
Column Colunadedadosemum<h:dataTable>
commandButton Geraumbotodesubmit oureset
commandLink Geraumlink.Precisaestar
dentrodeum<h:form>
...
http://blog.fimes.edu.br/fernando/
files/2012/05/JavaServerFaces
%E2%80%93JSF.pdf
JSF BibliotecaCore
xmlns:h=http://java.sun.com/jsf/core
Tag Descrio
actionListener Permiteregistrarumeventoajax
ouumaaoajax aserrealizada
peloacionamentodeumboto.
attribute
Configuraumatributoparaatag pai
queacontiver
convertDateTime Configuraumconversorparadataehora
converter Permiteregistrar
umconversor
personalizado
...
http://blog.fimes.edu.br/fernando/file
s/2012/05/JavaServerFaces
%E2%80%93JSF.pdf
Perguntas
Exemplo02
Nomedoprojeto:Teste02_JSF
GABRIEL
http://wehavescience.com/2012/11/07/desen
volvendoumaaplicacaoutilizandojsf2/
8
Pacotes
Pacotes
Classes
Lib jsf
config e
web.xml
views
Passo01
Criarospacoteseasclasses
packageentities;
publicclass Pessoa{
private Stringnome;
private Stringemail;
private Stringinformacoes;
private int idade;
publicStringgetNome(){
return nome;
}
publicvoid setNome(Stringnome)
{
this.nome=nome;
}
// mtodosgetter esetter
}
classePessoa
packageentities;
packagebeans;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import entities.Pessoa;
@ManagedBean
@SessionScoped
publicclass CadastroBean {
private Pessoapessoa;
@PostConstruct
publicvoid init(){
pessoa=new Pessoa();
}
classeCadastroBean
packageentities;
publicvoid message(Stringmessage){
FacesContext instance =
FacesContext.getCurrentInstance();
instance.addMessage(null,new
FacesMessage(message));
}
publicStringcadastrar(){
if(pessoa.getIdade()<18){
message("Vocnopossuiidadesuficientepara
realizarocadastro!");
return "";
}
return "paginaSucesso";
}
//mtodosgetters and setters
}
classeCadastroBean
packageentities;
Emcasodesucesso
senotiveridade
9
ManagedBean
Aprincipalresponsabilidadedeummanaged
beanintermediaracomunicaoentre
aspginas(componentesdoJSF)eomodelo.
Entendendoosdiferentestipos
deManaged Beans JSF
RafaelPonte
http://www.rponte.com.br/2009/08/
27/managedbeansnaocomplique
simplifique/
JSF MapeamentodaclasseBean
Tempodevidadaclasse
Escopo Descrio
@ApplicationScop
ed
Apenasumainstnciadaclasse
emtodaaaplicao.Todososusurios
acessamamesmainstncia.
@SessionScoped Existeumainstnciaparacadausurio.
@RequestScoped
Existeumainstnciapelotempo
deduraodarequisiofeita
pelousurio.
... ...
http://blog.fimes.edu.br/fernando/file
s/2012/05/JavaServerFaces
%E2%80%93JSF.pdf
http://blog.fimes.edu.br/fernando/file
s/2012/05/JavaServerFaces
%E2%80%93JSF.pdf
...
p_ID"version="3.0">
<displayname>JSF</displayname>
<welcomefilelist>
<welcomefile>index.html</welcomefile>
</welcomefilelist>
<servlet>
<servletname>FacesServlet</servletname>
<servletclass>javax.faces.webapp.FacesServlet</servletclass>
<loadonstartup>1</loadonstartup>
</servlet>
<servletmapping>
<servletname>FacesServlet</servlet
name>
<urlpattern>*.jsf</urlpattern>
</servletmapping>
</webapp>
web.xml
Arquivoprincipal
<metahttpequiv="REFRESH"
content="0;url=index.jsf">
Index.html
<?xml version="1.0"encoding="UTF8"?>
<!DOCTYPEhtml PUBLIC"//W3C//DTDXHTML1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>PginadeCadastro</title>
</h:head>
Index.xhtml
<h:body>
<h:form>
<h:messages />
<h:panelGrid columns="2">
<h:outputText value="Nome:"/>
<h:inputText value="#{cadastroBean.pessoa.nome}"/>
<h:outputText value="Email:"/>
<h:inputText value="#{cadastroBean.pessoa.email}"/>
Index.xhtml
continuao
10
<h:outputText value="Idade:"/>
<h:inputText value="#{cadastroBean.pessoa.idade}"
/>
<h:outputText value="Informaes"/>
<h:inputText
value="#{cadastroBean.pessoa.informacoes}"/>
</h:panelGrid>
<h:commandButton value="Cadastrar!"
action="#{cadastroBean.cadastrar}"/>
</h:form>
</h:body>
</html>
Index.xhtml
(continuao)
Cadastrar
...
<navigationrule>
<navigationcase>
<fromoutcome>paginaSucesso</fromoutcome>
<toviewid>/paginasucesso.jsf</toviewid>
<redirect />
</navigationcase>
</navigationrule>
...
facesconfig.xml
publicStringcadastrar(){
if(pessoa.getIdade()<18){
message("Vocnopossui
idadesuficientepararealizar
ocadastro!");
return "";
}
return "paginaSucesso";
}
classeCadastroBean
packageentities;
<?xml version="1.0"encoding="UTF8"?>
<!DOCTYPEhtml PUBLIC"//W3C//DTDXHTML1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>PginadeSucesso</title>
</h:head>
<h:body>
<h:form>
<h:outputText
value="Parabns,
#{cadastroBean.pessoa.nome},
seucadastrofoirealizadocomsucesso!"/>
</h:form>
</h:body>
</html>
paginasucesso.xhtml
MATERIALDEAPOIO
TutorialdeinstalaodoJava7noWindows7.
http://www.activeinfo.com.br/tutos/tutorial_instalacao_j
ava_windows.pdf
TutorialTomcat InstalaoeConfiguraoBsica.
http://www.mhavila.com.br/topicos/java/tomcat.html
Tutorial ConfigurandooEclipse...
http://ges.dc.ufscar.br/graduacao/tutorial_criacao_projet
o_web_eclipse.pdf
CursodeJavabsicoparainiciantes
usandoEclipse:
http://www.java.marcric.com/pages/
004instalandoeclipse.html
brunetta,Andii.JSF2.0:ComponentesPrimeFaces 2.2.1
Parte1.http://javasemcafe.blogspot.com.br/2011/05/jsf
20componentesprimefaces221parte.html
Domenech,Edson.DesenvolvimentodeumsistemaWeb
comJavaServerFacesePrimeFaces (ParteI).
http://domenechbr.blogspot.com.br/2012/08/desenvolvi
mentodeumsistemawebcom.html
TutorialdeinstalaodoJava7noWindows7:
http://www.activeinfo.com.br/tutos/
tutorial_instalacao_java_windows.
pdf (ACTIVEINFO)
11
ComparaoentreosprincipaisFrameworksJava
paraodesenvolvimentodeaplicaesWEB2.0
http://www3.iesam
pa.edu.br/ojs/index.php/sistemas/article/viewFile/585
/424
CAELUM,EspecificaoeimplementaodoJSF.
Disponvelem.http://www.caelum.com.br/apostilajava
testesjsfwebservicesdesignpatterns/introducaoaojsf
eprimefaces/#75especificacaoe
implementacaodojsf
Primefaces User's Guide 3.3.Turquia,2012.
http://www.slashdocs.com/xskst/primefacesusers
guide32.html(refernciadoprimefaces)
EXADEL.JavaServerFacesHTMLTags Reference.2013.
http://exadel.com/web/portal/jsftagsguide
UNIVERSIDADEJAVA.IntroduoaoJavaServerFaces2.0.
http://www.universidadejava.com.br/docs/introducaoaoj
avaserverfaces20
2014 Todososdireitosreservados.Usoexclusivo
noSistemadeEnsinoPresencialConectado.

Você também pode gostar