SlideShare a Scribd company logo
1 of 29
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
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

More Related Content

What's hot

JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeRafael Ponte
 
Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer FacesWillian Watanabe
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Facesbielgott
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Anderson Araújo
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemCloves Moreira Junior
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsEmerson Soares
 

What's hot (20)

JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 
Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer Faces
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Prime Faces
Prime FacesPrime Faces
Prime Faces
 
JSF - JavaServer Faces
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Jsf
JsfJsf
Jsf
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
Apresentação jsf 1_2
Apresentação jsf 1_2Apresentação jsf 1_2
Apresentação jsf 1_2
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
 
Acelerando o desenvolvimento java com rad 7.5
Acelerando o desenvolvimento java com rad 7.5Acelerando o desenvolvimento java com rad 7.5
Acelerando o desenvolvimento java com rad 7.5
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvem
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
Serra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EESerra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EE
 

Viewers also liked

Desenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEDesenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEelliando dias
 
Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Marcos Batista
 
Graficos com PrimeFaces
Graficos com PrimeFacesGraficos com PrimeFaces
Graficos com PrimeFacesBruno Paulino
 
Projeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesProjeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesAntonio Passos
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Moisés Moura
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoVinícius de Paula
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPACaelum
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesRosicleia Frasson
 

Viewers also liked (12)

Desenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEDesenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EE
 
Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)
 
Apresentando jsf
Apresentando jsfApresentando jsf
Apresentando jsf
 
Graficos com PrimeFaces
Graficos com PrimeFacesGraficos com PrimeFaces
Graficos com PrimeFaces
 
Projeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesProjeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando Padrões
 
Spring Capitulo 06
Spring Capitulo 06Spring Capitulo 06
Spring Capitulo 06
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EE
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPA
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 

Similar to Apresentação jsf 2.0

5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEBRafael Chinelato Del Nero
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Dr. Spock
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSFDalton Valadares
 
Spring: uma introdução prática
Spring: uma introdução práticaSpring: uma introdução prática
Spring: uma introdução práticaJosé Barros
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaMariana de Azevedo Santos
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server FacesJoão Longo
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
 

Similar to Apresentação jsf 2.0 (20)

5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
 
Aula parte 2 de JSF 2.2
Aula parte 2 de JSF 2.2Aula parte 2 de JSF 2.2
Aula parte 2 de JSF 2.2
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
Jsf 2 slideshare
Jsf 2 slideshareJsf 2 slideshare
Jsf 2 slideshare
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 
JSF & REST
JSF & RESTJSF & REST
JSF & REST
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Spring: uma introdução prática
Spring: uma introdução práticaSpring: uma introdução prática
Spring: uma introdução prática
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
Jsf
JsfJsf
Jsf
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server Faces
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
1409243945064
14092439450641409243945064
1409243945064
 
Jee6
Jee6Jee6
Jee6
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 

Apresentação jsf 2.0

  • 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">
  • 13. Ciclo de Vida de uma requisição JSF
  • 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