Apresentação jsf 2.0
-
Upload
paulo-neto -
Category
Documents
-
view
361 -
download
2
Transcript of Apresentação jsf 2.0
Camada de Apresentação com Java Server Faces 2.0
Bruno Nascimento, Paulo Neto, Kawe Ramon
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.
Java EE
•É uma plataforma de programação para servidores em Java
•Era inicialmente conhecida por J2EE
•Atualmente está na versão 6
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)
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;
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 .
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 validações;
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
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.
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.
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">
Tags JSF Core
Ciclo de Vida de uma requisição JSF
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.
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.
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
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
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
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
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
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
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
Adicionando JSF 2.0 na camada de Apresentação com Spring Roo
Com estes comandos, o Spring Roo irá gerar a seguinte classe:
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.
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.
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.
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
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/
Adicionando JSF 2.0 na camada de Apresentação com Spring Roo
O que o Spring Roo fez?
localhost:8080/ApresentacaoJSF