Aula MVC - JSF

Propaganda
MVC: JSF
PATRÍCIA DOURADO
Junho 2013
Histórico MVC
• Model View Controller
• Separar Interface do Usuário(UI) das regras
de negócio e acesso a dados.
• Utilizado em Smalltalk
• Contexto inicial - desktop
MVC
Fonte: Wikipedia Commons []
Vantagens MVC
• Múltiplas Visões
• Facilidade Manutenção
• Reuso
MVC – Padrão de Projeto
GAMMA, Erich et al.
Padrões de projeto.
New York: Bookman,
2005.
Uso MVC – aplicações Web
Uso MVC – aplicações Web
Action Based x Component Based
• Como escolher?
Java Server Faces
(JSF)
JavaServer Faces
Conceito
•
JavaServer Faces é uma especificação que define um framework de
desenvolvimento de aplicações web baseado em componentes.
Duas Principais Versões
•
•
1.2 – Distribuído no JEE5
2.0 – Distribuído no JEE6
Principais Implementações
•
•
Mojarra (RI – Reference Implementation)
Myfaces
JavaServer Faces
JavaServer Faces
Especificação JSF – Componentes Simples
Arquitetura JSF (MVC)
Fonte: Apostila algaworks
Ambiente de Desenvolvimento
• Eclipse Juno
• Tomcat v7
• Bibliotecas
– Implementação JSF (Mojarra)
• https://javaserverfaces.java.net/nonav/2.1/download.html
– JSTL (JavaServer Pages Standard Template Library)
• https://jstl.java.net/download.html
Funcionalidades do JSF
•
•
•
•
•
•
Conversão de Dados
Validação
Componentes Customizados
Renderizadores
Internacionalização
Facelets
Ambiente de Desenvolvimento
• Exemplo Prático – Primeiro Exemplo JSF
– Configuração
– Diretório Padrão
– Extensão xhtml
Ciclo de Vida
Managed Beans
• Java Beans, que servem como canais entre a
interface gráfica (a tela) e o back-end da
aplicação (regras de negócio, acesso ao banco
de dados, etc).
• Continuação Exemplo
– Criação de um formulário
• o h:form sempre envia uma requisição HTTP do
tipo POST
– Validação do formulário (campo obrigatório, min ou
máx de caracteres)
– Mensagens após Validação
Navegação Implícita
• Não é necessário configuração no faces-config (JSF1)
<navigation-rule>
<from-view-id>/index.xhtml</from-view-id>
<navigation-case>
<if>#{pessoaBean.nome != null}</if>
<to-view-id>/Resultado.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
Navegação Implícita
Tipos de Escopo
• Continuação Exemplo
– Uso do componente dataTable para apresentar
inserções
– Manter os cadastros no dataTable (tipo de escopo)
Bibliotecas de Componentes
Adicionais
• Prime Faces http://www.primefaces.org/showcase/ui/home.jsf
http://www.primefaces.org/downloads.html
• Rich Faces – http://showcase.richfaces.org/
• Tomahawk
• YUI
Configuração Prime Faces
• Exemplo Prático – Primeiro Projeto JSF
– Configuração
– Melhoria da interface – usando um componente
do Prime Faces
Exercício
• Acrescentar um componente PrimeFaces
no formulário.
Sugestões
• Uso do Maven
• Verificar Ciclo de Vida
• Intercionalização
Links Interessantes
• Apostilas
– http://www.caelum.com.br/apostila-java-testesjsf-web-services-design-patterns/
– http://www.caelum.com.br/apostila-java-web/
– http://www.algaworks.com/apostilas/
Download