1. Camada de Apresentação com
Java Server Faces 2.0
Bruno Nascimento, Paulo Neto, Kawe Ramon
2. Java EE
O Java EE (Java Enterprise Edition)
consiste de uma série de especificações
bem detalhadas, dando uma receita de
como deve ser implementado um software
que atenda a todos os requisitos de
infraestrutura estabelecidos.
3. Java EE
•É uma plataforma de programação para
servidores em Java
•Era inicialmente conhecida por J2EE
•Atualmente está na versão 6
4. ALGUMAS ESPECIFICAÇÕES DO
JAVA EE
•Java Server Pages (JSP), Java Servlets, Java
Server Faces (JSF)
•Enterprise Javabeans Components (EJB) e Java
Persistence API (JPA)
•Java Transaction API (JTA)
•Java Message Service (JMS)
5. O que é Java Server Faces?
Principais VANTAGENS:
• Complexas Interfaces = Simples
Componentes;
• Manipulação de eventos simplificada;
• Validação e Conversão na própria View;
6. O que é Java Server Faces?
Principais DESVANTAGENS:
• Falta de Transparência;
• As requisições estarem amarradas ao
método POST, não sendo possível usar
GET, PUT, DELETE .
7. Histórico do JSF
• JSF 1.0 (11 Março 2004) - Lançamento
Inicial;
• JSF 1.1(27 Maio 2004) - Melhorias no
Desempenho;
• JSF 1.2 (11 Maio 2006) - Suporta a Servlet
2.3 3 JSP, EL, Suporte a
Ajax, configurações XML e novas
8. JSF – Java Server Faces
•O Java Server Faces é o framework Web
mais usado em aplicações Web
complexas em Java.
•JSF é uma tecnologia da camada de
apresentação
9. JSF – Java Server Faces
• Sua arquitetura de componentes aliada a
integração com outras ferramentas do
mercado Java EE fazem o sucesso dessa
especificação.
• E com sua última versão 2.0, o JSF
ganhou mais simplicidade e
produtividade.
10. Tags JSF Core
A biblioteca de tags JSF Core contém
elementos action que representam
artefatos JSF que são independentes da
linguagem de marcação, tais como
conversores e validadores.
11. Tags JSF Core
Esta biblioteca é importada para suas
páginas xhtml por meio da seguinte
declaração:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
14. Restore View
• Recupera a visão de acordo com a URL
• Se for uma chamada inicial, apenas cria um
componente UIViewRoot e repassa à fase 6
• Sendo uma chamada subsequente, carrega
o UIViewRoot existente e repassa para a
fase 2.
15. Apply Request Values
• Carrega parâmetros, cookies e cabeçalhos
HTTP nos componentes da view escolhida
na etapa anterior
• Realiza a conversão e validação de objetos
UIIunput marcados como immediate
• Requisições disparadas por campos
immediate são desviadas para a fase 6.
16. Process Validations
• Realiza as validações dos campos UIInput
• Em caso de falhas de validação de algum
campo, a mensagem será adicionada ao
objeto FacesContext e o fluxo será desviado
para a fase 6
• Os valores são avaliados de acordo com as
regras de validação da aplicação
17. Update Model Values
• Nesta fase, todos os dados da entrada são
considerados válidos
• Atualiza o managed bean com os valores
dos componentes da view chamando
conversores quando necessário
• Se houver alguma falha na conversão de
algum valor, o fluxo será desviado para a
etapa 6
18. Invoke Application
• Fase onde o método referente ao action de
um UICommand é executado
• Se retornar uma string esta será
considerada o nome de alguma view a ser
renderizada
• Se retornar void, a view solicitada será
renderizada
• O valor do componente sempre será
convertido, validado e aplicado aos objetos
de modelo
19. Render Response
• Renderiza a view escolhida pelo usuário ou
retornada na fase 5
• Salva o estado da UIViewRoot associada à
view
• Se alguns componentes da página tem seu
atributo setado como immediate, então as
validações, conversões e eventos
associados a estes componentes serão
processados
20. Managed Beans
• Classe que expõe objetos de negócio para a
camada de apresentação
• São registrados no faces.config.xml
• Objetos que sofrerão alterações em seus
atributos durante uma requisição.
• Serão utilizados na camada de
apresentação através da Expression
Language
• Form Beans são injetados por setters dentro
do seu próprio Bean
21. Expression Language
• Poderosa linguagem de expressão
(linguagem de navegação) para acessar
propriedades dos beans e coleções
• Quando ocorrer uma requisição pelo
browser é preenchido dinamicamente pelos
elementos da página pela camada de
negócio
• Quando a página for submetida, ocorre a
modificação no estado da camada de
negócio
22. Adicionando JSF 2.0 na camada de
Apresentação com Spring Roo
Para exemplificar, vamos criar a Entidade
Aluno com a seguinte estrutura:
Assumindo que o projeto já esteja criado, e que as
configurações de persistência já foram feitas, digite os
seguintes comandos:
entity jpa --class ~.modelo.Aluno --testAutomatically false
field string --fieldName nome --notNull
field string --fieldName matricula --notNull
23. Adicionando JSF 2.0 na camada de
Apresentação com Spring Roo
Com estes comandos, o Spring Roo irá gerar a
seguinte classe:
24. Adicionando JSF 2.0 na camada de
Apresentação com Spring Roo
Com a nossa Entidade definida, vamos agora adicionar
o JSF 2.0 para a camada de Apresentação, digite os
seguintes comandos:
web jsf setup --implementation ORACLE_MOJARRA --library
PRIMEFACES --theme VADER
O comando web jsf setup pode ser executado tantas vezes quanto
você quiser mudar a implementação JSF e o tema.
O comando --implementation quando especificado, permite escolher
asimplementações Mojarra Oracle ou Apache MyFaces JSF.
25. Adicionando JSF 2.0 na camada de
Apresentação com Spring Roo
web jsf setup --implementation ORACLE_MOJARRA --library
PRIMEFACES --theme VADER
O comando --library tem apenas um valor selecionável, sendo
PRIMEFACES.
O comando --theme permite que você selecione um dos 30 temas
PrimeFaces para sua interface.
26. Adicionando JSF 2.0 na camada de
Apresentação com Spring Roo
Comando:
web jsf all --package ~.web
O comando web jsf all cria os managed beans e conversores para
todas as entidades do pacote especificado. A página XHTML
também é criada no diretório src / main / webapp / diretório páginas
para cada entidade.
27. Adicionando JSF 2.0 na camada de
Apresentação com Spring Roo
Para executar com o servidor de aplicação
Jetty, pelo terminal, vá até a raiz do projeto e
digite:
mvn jetty:run-exploded
28. Adicionando JSF 2.0 na camada de
Apresentação com Spring Roo
Quando o servidor terminar de ser iniciado, no
browser acesse o endereço:
http://localhost:8080/NomeDaSuaAplicacao/
29. Adicionando JSF 2.0 na camada de
Apresentação com Spring Roo
O que o Spring Roo fez?
localhost:8080/ApresentacaoJSF