Disciplina:
Prof.(a):
Aula:
Semestre:
Programao Web II
Veronice de Freitas
01 JSF-JavaServer Faces
6
Aula Atividade
Objetivo: introduo ao desenvolvimento web Java usando framework.
Orientaes:
Caro aluno,
Inicialmente faa download e instale os softwares preparando o ambiente para criar os
projetos JSF no incio do texto da atividade coloquei uma tabela contendo os links para
download (no material de apoio (logo aps a tabela) contm vrios tutoriais que auxiliam
na instalao e configurao do ambiente).
Na unidade 01 do livro da disciplina Programao Web II tambm contm orientaes
para instalar os programas (se voc ainda no teve contato com as ferramentas
oriento que siga o padro utilizado na disciplina eclipse e tomCat).
Em relao ao gabarito dos projetos:
Obs: os gabaritos esto passo a passo nos artigos referenciados nas atividades (tambm
esto nas sees aprofundando conhecimento dos captulos 02 e 03 do livro da disciplina
programao Web II. (os arquivos do projeto tambm estaro disponveis no endereo:
https://www.dropbox.com/sh/ozxlcn9925dn0qf/AACrdllTeNnQPo6hdYywsMfda ) se
ainda no teve contato com desenvolvimento Web em Java siga as orientaes para
preparar o ambiente de desenvolvimento usando o Eclipse e TomCat.
Sobre a impresso da atividade:
Imprima somente a parte de introduo relacionada aos conceitos.
Organizao do texto
1 - PREPARANDO O AMBIENTE .........................................................................................2
2 - PROGRAMAO WEB EM JAVA ...................................................................................3
Frameworks Web ...............................................................................................................3
2.1 Java Server Faces .......................................................................................................3
2.2 Implementaes do JSF ..............................................................................................5
2.3 Usando o Java Server Faces .......................................................................................5
2.4 Beans Gerenciados......................................................................................................7
2.5 Converso e Validao ................................................................................................8
2.5. 1 Converso ............................................................................................................8
2.5.2 Validao ...............................................................................................................9
3 - ATIVIDADE ....................................................................................................................10
1 - PREPARANDO O AMBIENTE
Para desenvolver uma aplicao web em Java, ser necessrio as
ferramentas abaixo.
Tabela Sotwares
Software
Disponvel em
http://www.oracle.com/technetwork/java/javase/downloads/index.ht
ml
Eclipse Juno *
http://www.eclipse.org/downloads/packages/release/juno/sr1
Tomcat *
http://tomcat.apache.org/download-70.cgi
Obs: esto
MySQL 5.5
http://dev.mysql.com/downloads/
destacados
Obs: orientaes para instalao (unidade 04)
com * os
JSF 2.1 *
http://javaserverfaces.java.net/
softwares
Obs: orientaes para instalao (unidade 02)
necessrios
Hibernate 3.5
http://www.hibernate.org/)
para a
Obs: orientaes para instalao (unidade 04)
teleaula 01.
Primefaces 3.3.1
http://www.primefaces.org/downloads.html
Obs: orientaes para instalao (unidade 03)
OUTRAS OPES
Netbeans 7.2
(http://netbeans.org/community/releases/72/
Glassfish 3.2
J vem embutido no Netbeans verso JEE
INSTALAO (Vdeo YOUTUBE
Vdeo
https://www.youtube.com/watch?v=RWDyIJm1vu0
Observao: poder usar como forma alternativa para o Eclipse o NetBeans e para o
Tomcat o Glassfish, que j contm embutido a verso JEE).
Material de apoio:
Fonte: http://www.edsongoncalves.com.br/tag/jsf-2-0/
O padro MVC separa o sistema em trs responsabilidades, onde o
modelo responsvel por representar os objetos de negcio, manter o estado da aplicao
e fornecer ao controlador o acesso aos dados. A visualizao responsvel pela interface
do usurio. ela que define a forma como os dados so apresentados e encaminha as
aes do usurio para o controlador. O controlador responsvel por ligar o modelo e a
visualizao, interpretando as solicitaes do usurio, traduzindo para uma operao no
modelo (onde so realizadas efetivamente as mudanas no sistema) e retornando a
visualizao adequada solicitao.
Em JSF, o controle feito atravs de um servlet chamado Faces Servlet
por arquivos XML de configurao e por vrios manipuladores de aes e observadores de
eventos. O Faces Servlet recebe as requisies dos usurios na web, redireciona para o
modelo e envia uma resposta. Os arquivos de configurao possuem informaes sobre
mapeamentos de aes e regras de navegao. Os manipuladores de eventos so
responsveis por receber os dados da camada de visualizao, acessar o modelo e
devolver o resultado para o usurio atravs do Faces Servlet. A figura 03 representa esse
processo.
Figura 03 - Arquitetura do JavaServer Faces baseada no MVC
uma
especificao,
portanto
necessrio
escolher
uma
namespace
<h:head>
<title>JSF 2.0 Hello World</title>
</h:head>
<h:body>
<h3>JSF 2.0 Hello World Example - hello.xhtml</h3>
<h:form>
<h:inputText value="#{helloBean.name}">
</h:inputText>
<h:commandButton value="Bem Vindo" action="benvindo"></h:commandButton>
</h:form>
</h:body>
</html>
Resultado
index.xhtml
<h: body>
<h:form>
<h:outputText value=Atributo: />
<h:inputText value=#beanObjeto.atributo} />
<h:comandButton value=Submit action=#beanObjeto.objeto.metodo()} />
<h:outputText value=#beanObjeto.resposta} />
</form>
<h:body>
Fonte: Santana (2012)
Exemplo 02
Pgina JSF (view)
Fonte: http://blog.fimes.edu.br/fernando/files/2012/05/JavaServer-Faces-%E2%80%93JSF.pdf
possvel definir o tempo de vida dessa classe Bean atravs das anotaes.
O escopo nada mais do que o tempo de vida e morte do seu objeto, ou seja, quando ele
ser criado e destrudo. Dentre esses escopos esto os apresentados na tabela 02:
Tabela 02: Tempo de vida da classe
Escopo
@ApplicationScoped
Descrio
Apenas uma instncia da classe em toda a aplicao. Todos os
usurios acessam a mesma instncia.
@SessionScoped
Existe uma instncia para cada usurio.
@RequestScoped
Existe uma instncia pelo tempo de durao da requisio feita
pelo usurio.
@NoneScoped
Cada vez que houver uma chamada a uma propriedade ou
mtodo da classe Bean ser criada uma nova instncia
@ViewScoped
Armazena a instncia da classe Bean na pgina exibida.
Enquanto esta estiver sendo manipulada, a mesma instncia da
classe Bean estar disponvel.
@CustomScoped(value=
Armazena a instncia da classe Bean em um java.util.Map
#{meuMap})
declarado.
Fonte: http://blog.fimes.edu.br/fernando/files/2012/05/JavaServer-Faces-%E2%80%93-JSF.pdf
2.5. 1 Converso
Converso Padro Implcita
@ManagedBean
public class ManagedBean {
private int idade;
//getters and setters
}
<!-- o valor digitado neste campo ser convertido para inteiro -->
<h:inputText value="#{managedBean.idade}" />
f:convertDateTime
2.5.2 Validao
Na maioria dos casos apenas uma converso no o suficiente para verificar se uma
informao digitada pelo usurio valida. Por exemplo, dizer que um campo requerido
ou que no esto no intervalo definido para o campo. Segue alguns exemplos:
A validao mais comum de todas a de verificar se um determinado campo no deixou
de ser preenchido. Podemos aplicar essa validao utilizando o atributo required (campo
obrigatrio) dos inputs.
<h:inputText value="#{managedbean.idade}" id="inputIdade" required="true"/>
Bean Validation
Uma nova abordagem para definir validaes adicionadas no JSF2 foi o Bean Validation.
A ideia declarar as regras de validao nas classes de modelo ao invs de inseri-las nas
UNOPAR VIRTUAL (pgina: 9)
Onde:
3 - ATIVIDADE
O cdigo do projeto ser disponibilizado no frum.
Para tese (eclipse) poder copiar o projeto para a pasta workspace
(exemplo: usurios veronice workspace (e no eclipse use a opo
arquivo / import)).
No link do autor tem uma opo para download do projeto no netbeans.
Observao: os artigos tambm esto nas sees aprofundando
conhecimento do livro Programao Web II Unidade 02 e Unidade
03.
ATIVIDADE 01:
Crie o projeto abaixo (como sugesto use o eclipse / tomcat) no artigo foi utilizado o
NetBeans.
Autor: Thiago Marques
Fonte: http://thiagom.wordpress.com/2011/01/26/199/
Primeira aplicao em JSF 2.0
Faa teste
somente com os
campos do
formulrio
ATIVIDADE 02:
Aps criar cadastro, agora nessa atividade ser apresentado os dados inseridos na lista de
pessoas, para isso ser utilizado um dataTable.
Veja os cdigos
no artigo
Referncias
ALGAWORKS. DWJSF desenvolvimento web com javaserver faces. 2010. Disponvel
em: < http://www.algaworks.com/downloads/apostilas/algaworks-dwjsf-desenvolvimentoweb-com-javaserver-faces-2a-edicao.pdf >. Acesso em: 5 abr. 2013.
CAELUM. Especificao e implementao do JSF. Disponvel em. <
http://www.caelum.com.br/apostila-java-testes-jsf-web-services-design-patterns/introducaoao-jsf-e-primefaces/#7-5-especificacao-e-implementacao-do-jsf>. Acesso em 28/09/2013.
JQUERY. Disponvel em <http://jqueryui.com/themeroller/>. Acesso em: 5 abr. 2013.
PRIMEFACES. Disponvel em <http://www.primefaces.org/themes.html>. Acesso em: 5
abr. 2013.
Raible, Matt. My Future of Web Frameworks Presentation. 2010. Disponvel em <
http://java.dzone.com/articles/my-future-web-frameworks>. Acesso em 28/09/2013.
SANTANA, Otvio. Desenvolvimento com solues livres. 2012. Disponvel em:
<http://otaviosantana.blogspot.com.br/2012/07/introducao-para-jsf-20.html>. Acesso em: 5
abr. 2013.
Material de apoio:
DEVMEDIA. Persistindo objetos com Java, hibernate e postgreSQL. 2013. Disponvel
em: <http://www.devmedia.com.br/ persistindo-objetos-com-java-hibernate-epostgresql/4149>. Acesso em: 15 fev. 2013.
GUJ - Grupo de Usurios Java. Disponvel em: <http://www.guj.com.br>. Acesso em: 5 abr.
2013.
JAVA SEM CAF. JPA 2.0: criando tabelas - parte 1. Disponvel em:
<http://javasemcafe.blogspot.com.br/2011/02/jpa-20-criando-tabelas-parte-1.html>. Acesso
em: 5 abr. 2013.
JAVA SEM CAF. JPA 2.0: criando tabelas - parte 2. Disponvel em:
<http://javasemcafe.blogspot.com.br/2011/03/jpa-20-criando-tabelas-parte-2.html>. Acesso
em: 5 abr. 2013.
JAVA SEM CAF. JPA 2.0: criando tabelas - parte 3. Disponvel em:
<http://javasemcafe.blogspot.com.br/2011/03/jpa-20-criando-tabelas-parte-3.html>. Acesso
em: 5 abr. 2013.
JAVA SEM CAF. JPA 2.0: gerar classes a partir do banco com o Netbeans. Disponvel
em: <http://javasemcafe.blogspot.com.br/2011/03/jpa-20-gerar-classes-partir-dobanco.html>. Acesso em: 5 abr. 2013.
JAVA SEM CAF. JPA 2.0: Java Persistence API. Disponvel em:
<http://javasemcafe.blogspot.com.br/2011/02/jpa-20-java-persistence-api.html>. Acesso
em: 5 abr. 2013.
KING, Gavin et al. Hibernate persistncia relacional para Java idiomtico:
documentao de referncia hibernate. Disponvel em
<http://docs.jboss.org/hibernate/core/3.5/reference/pt-BR/pdf/hibernate_reference.pdf>.
Acesso em: 5 abr. 2013.
PROGRAMANDOJAVA. CRUD JSF 2 + JPA 2 parte 1. Disponvel em:
<http://programandojava.wordpress.com/2012/05/31/crud-parte1/ >.Acesso em: 5 abr.
2013.
PROGRAMANDOJAVA. CRUD JSF 2 + JPA 2 parte 2. Disponvel em:
<http://programandojava.wordpress.com/2012/06/06/crud-parte2/>. Acesso em: 5 abr.
2013.
PROGRAMANDOJAVA. CRUD JSF 2 + JPA 2 parte 3. Disponvel em:
<http://programandojava.wordpress.com/2012/06/12/crud-parte3/>.Acesso em: 5 abr. 2013.
PROGRAMANDOJAVA. CRUD JSF 2 + JPA 2 parte 4. Disponvel em:
<http://programandojava.wordpress.com/2012/06/13/crud-parte-4-final/>. Acesso em: 5 abr.
2013.
UNOPAR VIRTUAL (pgina: 12)