apresentação jsf 2.0

29
Camada de Apresentação com Java Server Faces 2.0 Bruno Nascimento, Paulo Neto, Kawe Ramon

Upload: paulo-neto

Post on 14-Jun-2015

379 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Apresentação jsf 2.0

Camada de Apresentação com Java Server Faces 2.0

Bruno Nascimento, Paulo Neto, Kawe Ramon

Page 2: Apresentação jsf 2.0

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.

Page 3: Apresentação jsf 2.0

Java EE

•É uma plataforma de programação para servidores em Java

•Era inicialmente conhecida por J2EE

•Atualmente está na versão 6

Page 4: Apresentação jsf 2.0

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)

Page 5: Apresentação jsf 2.0

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;

Page 6: Apresentação jsf 2.0

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 .

Page 7: Apresentação jsf 2.0

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;

Page 8: Apresentação jsf 2.0

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

Page 9: Apresentação jsf 2.0

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.

Page 10: Apresentação jsf 2.0

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.

Page 11: Apresentação jsf 2.0

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">

Page 12: Apresentação jsf 2.0

Tags JSF Core

Page 13: Apresentação jsf 2.0

Ciclo de Vida de uma requisição JSF

Page 14: Apresentação jsf 2.0

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.

Page 15: Apresentação jsf 2.0

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.

Page 16: Apresentação jsf 2.0

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

Page 17: Apresentação jsf 2.0

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

Page 18: Apresentação jsf 2.0

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

Page 19: Apresentação jsf 2.0

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

Page 20: Apresentação jsf 2.0

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

Page 21: Apresentação jsf 2.0

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

Page 22: Apresentação jsf 2.0

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

Page 23: Apresentação jsf 2.0

Adicionando JSF 2.0 na camada de Apresentação com Spring Roo

Com estes comandos, o Spring Roo irá gerar a seguinte classe:

Page 24: Apresentação jsf 2.0

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.

Page 25: Apresentação jsf 2.0

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.

Page 26: Apresentação jsf 2.0

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.

Page 27: Apresentação jsf 2.0

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

Page 28: Apresentação jsf 2.0

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/

Page 29: Apresentação jsf 2.0

Adicionando JSF 2.0 na camada de Apresentação com Spring Roo

O que o Spring Roo fez?

localhost:8080/ApresentacaoJSF