SlideShare uma empresa Scribd logo
Projeto e Desenvolvimento de Sistemas Web Web 2 Prof. Frank Camada de Apresentação: JSF (Iniciar o Netbeans)
Desenvolvimento em camadas de uma aplicação Banco  de dados Camada de Persistência Camada de Negócios Camada de Apresentação
Desenvolvimento em camadas de uma aplicação Web JEE Java Enterprise Edition Banco  de dados Camada de Persistência JPA Camada de Negócios Session Beans / MDB Camada de Apresentação JSP/JSF
Desenvolvimento em camadas de uma aplicação Web Spring Spring Banco  de dados Camada de Persistência JPA / Hibernate Camada de Negócios POJO Camada de Apresentação JSP/JSF
Camada de apresentação Abordagem orientada a páginas Servlets Java Server Pages Abordagem orientada a framework MVC 2 Struts, WebWork, Spring MVC + Web Flow, FreeMarker, Velocity Abordagem orientada a framework de componentes JSF, Tapestry, Wicket Ajax Por que usar frameworks?
Características de JSF Orientado a componentes Manipulação de Eventos Implementação de controladores Chamada direta de métodos controladores a partir da view. Independente de visualização (html, xml) Padrão JEE Ferramentas Bibliotecas: MyFaces, RichFaces, Facelets Bibliotecas: http://www.jsfmatrix.net
Instalação As últimas versões de servidores costumam vir com o JSF instalado Para usar o JSF, seguir seguintes passos: Copiar os JARs para a parta WEB-INF/lib jsf-api.jar jsf-impl.jar Bibliotecas Commons Java Standard Tag Libraries Biblioteca Facelets (opcional) Arquivo de Configuração faces-config.xml
Web.xml <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>   javax.faces.webapp.FacesServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping>
Arquitetura
Descrição JSF conecta view e controlador Um bean pode ser conectado diretamente a um método controlador (get & set) <h:inputText value=&quot;#{user.name}&quot;/> JSF opera como controlador quando faz com que o clique de um botão invoque um método no lado servidor <h:commandButton value=&quot;Login&quot; action=&quot;#{user.check}&quot;/>
Descrição Conversão de Dados Usuários entram dados em formato String Objetos de negócio necessitam de strings, inteiros, decimais e datas JSF faz a conversão automática dos dados Validação e Tratamento de Erros JSF torna fácil a inclusão de validações como: “valor requerido”, “valor deve ser inteiro” Ao entrar com dados inválidos, faz-se necessário mostrar os dados errados JSF trata da maior parte da tarefa de converter dados e validar/tratar erros
Descrição Internacionalização JSF permite criar facilmente aplicações internacionalizadas Componentes Customizados Desenvolvedores podem desenvolver componentes sofisticados e podem utilizar nas páginas
Descrição Renders Alternativos Por default, o componente é gerado para HTML Mas, pode gerar outras saídas: XML, WML Suporte a ferramentas Netbeans Eclipse Estilo drag-and-drop
Fluxo Geral
Componentes <h:form> Nome: <h:inputText/> Telefone: <h:inputText/> <h:commandButton/> </h:form>
Componentes Todo o texto que não é JSF tag é simplesmente passado adiante As tags  h:form, h:inputText, h:inputSecret  são convertidas para HTML Cada uma das tags é associada com um determinado componente (classe) Cada classe tem um renderer que gera a saída (HTML por padrão) O processo de gerar saída da  árvore de componentes gráficos  é chamado  encode
Componentes
Ciclo de Vida
Ciclo de Vida
Restore View Restaurar Visualização Reconstrói a árvore de componentes da visualização correspondente Se a requisição for a primeira, a árvore de visualização é criada e enviado para o render Response
Apply Request Values Depois da árvore de componentes ser restaurada, cada componente tem seu valor do parâmetro atualizado de acordo com o método decode. Se algum erro de  conversão acontecer, ele é empilhado no FacesContext e exibido na página Exibido na fase de Render Response. Se algum método chamar o método renderResponse o ciclo pula para a fase de renderização.
Process Validation Durante esta fase, são feitas todas as validações registradas no componente.  Se o valor for inválido, as mensagens são adicionadas no FacesContext.  Se qualquer validador ou listener de evento chamar o renderResponse, o ciclo pula as outra fases.  Se houver a necessidade de redirecionar para uma página não JSF, é feita uma chamada  FacesContext.responseComplete.
Update Model Values Caso os valores tenham sido convertidos com sucesso e tenham sido validados, os Managed Beans são atualizados. Ao fim desta fase, os componentes estão sincronizados com a árvore de componentes JSF.
Invoke Application Esta fase é a chamada do action controller. Chama o modelo e retorna a regra de navegação.
Render Response Nesta fase, a árvore de componentes serverFaces é renderizada para o formato alvo Normalmente HTML É possível renderizar para outros formatos: WML XML Etc...
Projeto e Desenvolvimento de Sistemas Web Web 2 Prof. Frank Navegação de páginas
Configuração de navegação <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome>listar</from-outcome> <to-view-id>/listar.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>cadastrar</from-outcome> <to-view-id>/cadastrar.jsp</to-view-id> </navigation-case> </navigation-rule>
Navegação de páginas <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome> listar </from-outcome> <to-view-id>/listar.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome> cadastrar </from-outcome> <to-view-id>/cadastrar.jsp</to-view-id> </navigation-case> </navigation-rule> index.jsp listar.jsp cadastrar.jsp
Navegação Dinâmica Formulário Formulário Exemplo: Reservar Passagem Classe Java String processar() over-booking sucesso lotado
Configuração <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome> over-booking </from-outcome> <to-view-id>/over.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome> sucesso </from-outcome> <to-view-id>/sucesso.jsp</to-view-id> </navigation-case> </navigation-rule>
Managed bean Um Managed bean é uma classe cadastrada no Serves Faces e identificada através de um alias Permite invocar um formulário diretamente de um método Funciona como elemento de controle Chamando o modelo Escolhendo a visualização Utilizado para navegação dinâmica (através do retorno do método)
Definindo o Managed bean no FaceContext.xml <faces-config> <managed-bean> <managed-bean-name> nome </managed-bean-name> <managed-bean-class> classe </managed-bean-class> <managed-bean-scope> request | session | application </managed-bean-scope> </managed-bean> </faces-config>
Usando o managed bean Como chamar? Ao invés de colocar a String na action <h:commandLink value=&quot;Voltar“ action=&quot;index&quot;/> Usa-se a chamada ao Managed Bean <h:commandLink value=&quot; Voltar “ action=“#{beanName.metodo}&quot;/> A declaração do método deve ser public String metodo() { .... }
Exemplo... Uma página com um formulário que recebe um valor Caso o valor digitado seja ímpar, redirecionar para uma página Caso o valor seja par, redirecionar para outra página
Exemplo de managed bean package curso.jsf; public class Valor { private int valor; public void setValor(int valor) {this.valor = valor;} public int getValor() {return valor;} public String processar() { if ( valor % 2 == 0 ) {   return “par”; } else {   return “impar”; }   } }
Exemplo de faces-config <faces-config> <managed-bean> <managed-bean-name> bean </managed-bean-name> <managed-bean-class> curso.jsf.Valor </managed-bean-class> <managed-bean-scope> request </managed-bean-scope> </managed-bean> </faces-config>
Exemplo de navegação <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome>par</from-outcome> <to-view-id>/par.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>impar</from-outcome> <to-view-id>/impar.jsp</to-view-id> </navigation-case> </navigation-rule>
Exemplo de formulário <f:view> <h:form> Valor:  <h:inputText value=&quot;#{bean.valor}&quot;/> <br/> <h:commandButton  value=“Enviar“  action=&quot;#{bean.escolher}&quot;/> </h:form> </f:view>
Funcionamento Quando o formulário é enviado, os dados são preenchidos no managed Bean e o método escolher é chamado Baseado no retorno do método a escolha de navegação é feita Baseada nos navigation-rules.
Parte prática

Mais conteúdo relacionado

PPT
Produtividade com JavaServer Faces
PDF
Curso de JSP
PDF
Introdução ao Desenvolvimento de aplicações WEB com JSP
PDF
Java Web 3 - Servlets e JSP 1
PDF
Java Web - MVC básico com JSP e Servlets
PDF
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
PDF
Spring MVC Framework
Produtividade com JavaServer Faces
Curso de JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
Java Web 3 - Servlets e JSP 1
Java Web - MVC básico com JSP e Servlets
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Spring MVC Framework

Mais procurados (20)

PPT
Desenvolvendo aplicações web com o framework cakephp
PDF
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
PDF
Tutorial +login+mvc
PDF
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
PDF
Java Web 2 - Ferramentas e configuração
PPTX
CakePHP - Configurando o ambiente de desenvolvimento no Windows
PPTX
Aula 1 - curso java web - JSP Java Server Page
PDF
JSF & REST
PDF
JavaFX 1.2
PDF
Migrations for Java (Javou #4 - JavaCE)
PPT
Servlets e jsp
PDF
Java Web 1 Introducao
PDF
Uma abordagem ao Java EE 6
PPS
Spring Framework
KEY
Melhores apps rails
PDF
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
PPTX
Introdução a jsf
PPT
JavaServer Faces Produtividade em Desenvolvimento
PPTX
Arquitetura do Framework Spring
PDF
Java Web 5 - JSP, Expression Language e Taglibs
Desenvolvendo aplicações web com o framework cakephp
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Tutorial +login+mvc
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
Java Web 2 - Ferramentas e configuração
CakePHP - Configurando o ambiente de desenvolvimento no Windows
Aula 1 - curso java web - JSP Java Server Page
JSF & REST
JavaFX 1.2
Migrations for Java (Javou #4 - JavaCE)
Servlets e jsp
Java Web 1 Introducao
Uma abordagem ao Java EE 6
Spring Framework
Melhores apps rails
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Introdução a jsf
JavaServer Faces Produtividade em Desenvolvimento
Arquitetura do Framework Spring
Java Web 5 - JSP, Expression Language e Taglibs
Anúncio

Destaque (14)

PDF
Bootstrapping de uma Aplicação Web
PPT
A aplicabilidade dos sistemas de informação geográfica no planeamento em turismo
PDF
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
PPTX
O uso das Novas Tecnologias nas Rotas Turísticas
PPT
Planeamento website
PPT
A informática na actividade turística
PDF
Relatório de desenvolvimento de website
PDF
Metodologia para criação de sites
KEY
Etapas de desenvolvimento de um website
PPT
8 fazes do planejamento de sites
ODP
Proposta de criação de site
PDF
Projeto de WEB Site
PPT
Apresentação planejamento e avaliação
PDF
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Bootstrapping de uma Aplicação Web
A aplicabilidade dos sistemas de informação geográfica no planeamento em turismo
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
O uso das Novas Tecnologias nas Rotas Turísticas
Planeamento website
A informática na actividade turística
Relatório de desenvolvimento de website
Metodologia para criação de sites
Etapas de desenvolvimento de um website
8 fazes do planejamento de sites
Proposta de criação de site
Projeto de WEB Site
Apresentação planejamento e avaliação
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Anúncio

Semelhante a WEB 2 - Aula 01 - 02.08 (20)

PDF
Minicurso Java Server Faces
PDF
Interfaces ricas JSF
PDF
Aula parte 1 de JSF 2.2
PDF
Framework web 3 - JSF + Spring boot
PDF
Padrões de Projeto J2EE para Aplicações Web
PDF
PDF
JSF com Primefaces
PPTX
Apresentação jsf 2.0
PPT
JavaServer Faces
PDF
Fundamentos jsf
PPTX
PDF
Java Server Faces 2 & Rich Faces 4
PPTX
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
PDF
Desenvolvimento Web com JSF
PPTX
TechDay - Sistemas WEB em Java - Rogério N. Jr.
PDF
Apresentação Java Web - Jsf+Hibernate
PDF
Novidades do JSF: Um tour completo no JSF 2.2
PPTX
Curso jsf
PDF
Tutorial JSF 2.0 (2012)
PPT
WebSiviu - Sistema de Informação sobre Violência Urbana.
Minicurso Java Server Faces
Interfaces ricas JSF
Aula parte 1 de JSF 2.2
Framework web 3 - JSF + Spring boot
Padrões de Projeto J2EE para Aplicações Web
JSF com Primefaces
Apresentação jsf 2.0
JavaServer Faces
Fundamentos jsf
Java Server Faces 2 & Rich Faces 4
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
Desenvolvimento Web com JSF
TechDay - Sistemas WEB em Java - Rogério N. Jr.
Apresentação Java Web - Jsf+Hibernate
Novidades do JSF: Um tour completo no JSF 2.2
Curso jsf
Tutorial JSF 2.0 (2012)
WebSiviu - Sistema de Informação sobre Violência Urbana.

Último (20)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Custos e liquidação no SAP Transportation Management, TM130 Col18
Apple Pippin Uma breve introdução. - David Glotz
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 9 - (Threads) Multitarefas.pptx
Aula sobre desenvolvimento de aplicativos
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Processos na gestão de transportes, TM100 Col18
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26

WEB 2 - Aula 01 - 02.08

  • 1. Projeto e Desenvolvimento de Sistemas Web Web 2 Prof. Frank Camada de Apresentação: JSF (Iniciar o Netbeans)
  • 2. Desenvolvimento em camadas de uma aplicação Banco de dados Camada de Persistência Camada de Negócios Camada de Apresentação
  • 3. Desenvolvimento em camadas de uma aplicação Web JEE Java Enterprise Edition Banco de dados Camada de Persistência JPA Camada de Negócios Session Beans / MDB Camada de Apresentação JSP/JSF
  • 4. Desenvolvimento em camadas de uma aplicação Web Spring Spring Banco de dados Camada de Persistência JPA / Hibernate Camada de Negócios POJO Camada de Apresentação JSP/JSF
  • 5. Camada de apresentação Abordagem orientada a páginas Servlets Java Server Pages Abordagem orientada a framework MVC 2 Struts, WebWork, Spring MVC + Web Flow, FreeMarker, Velocity Abordagem orientada a framework de componentes JSF, Tapestry, Wicket Ajax Por que usar frameworks?
  • 6. Características de JSF Orientado a componentes Manipulação de Eventos Implementação de controladores Chamada direta de métodos controladores a partir da view. Independente de visualização (html, xml) Padrão JEE Ferramentas Bibliotecas: MyFaces, RichFaces, Facelets Bibliotecas: http://www.jsfmatrix.net
  • 7. Instalação As últimas versões de servidores costumam vir com o JSF instalado Para usar o JSF, seguir seguintes passos: Copiar os JARs para a parta WEB-INF/lib jsf-api.jar jsf-impl.jar Bibliotecas Commons Java Standard Tag Libraries Biblioteca Facelets (opcional) Arquivo de Configuração faces-config.xml
  • 8. Web.xml <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class> javax.faces.webapp.FacesServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping>
  • 10. Descrição JSF conecta view e controlador Um bean pode ser conectado diretamente a um método controlador (get & set) <h:inputText value=&quot;#{user.name}&quot;/> JSF opera como controlador quando faz com que o clique de um botão invoque um método no lado servidor <h:commandButton value=&quot;Login&quot; action=&quot;#{user.check}&quot;/>
  • 11. Descrição Conversão de Dados Usuários entram dados em formato String Objetos de negócio necessitam de strings, inteiros, decimais e datas JSF faz a conversão automática dos dados Validação e Tratamento de Erros JSF torna fácil a inclusão de validações como: “valor requerido”, “valor deve ser inteiro” Ao entrar com dados inválidos, faz-se necessário mostrar os dados errados JSF trata da maior parte da tarefa de converter dados e validar/tratar erros
  • 12. Descrição Internacionalização JSF permite criar facilmente aplicações internacionalizadas Componentes Customizados Desenvolvedores podem desenvolver componentes sofisticados e podem utilizar nas páginas
  • 13. Descrição Renders Alternativos Por default, o componente é gerado para HTML Mas, pode gerar outras saídas: XML, WML Suporte a ferramentas Netbeans Eclipse Estilo drag-and-drop
  • 15. Componentes <h:form> Nome: <h:inputText/> Telefone: <h:inputText/> <h:commandButton/> </h:form>
  • 16. Componentes Todo o texto que não é JSF tag é simplesmente passado adiante As tags h:form, h:inputText, h:inputSecret são convertidas para HTML Cada uma das tags é associada com um determinado componente (classe) Cada classe tem um renderer que gera a saída (HTML por padrão) O processo de gerar saída da árvore de componentes gráficos é chamado encode
  • 20. Restore View Restaurar Visualização Reconstrói a árvore de componentes da visualização correspondente Se a requisição for a primeira, a árvore de visualização é criada e enviado para o render Response
  • 21. Apply Request Values Depois da árvore de componentes ser restaurada, cada componente tem seu valor do parâmetro atualizado de acordo com o método decode. Se algum erro de conversão acontecer, ele é empilhado no FacesContext e exibido na página Exibido na fase de Render Response. Se algum método chamar o método renderResponse o ciclo pula para a fase de renderização.
  • 22. Process Validation Durante esta fase, são feitas todas as validações registradas no componente. Se o valor for inválido, as mensagens são adicionadas no FacesContext. Se qualquer validador ou listener de evento chamar o renderResponse, o ciclo pula as outra fases. Se houver a necessidade de redirecionar para uma página não JSF, é feita uma chamada FacesContext.responseComplete.
  • 23. Update Model Values Caso os valores tenham sido convertidos com sucesso e tenham sido validados, os Managed Beans são atualizados. Ao fim desta fase, os componentes estão sincronizados com a árvore de componentes JSF.
  • 24. Invoke Application Esta fase é a chamada do action controller. Chama o modelo e retorna a regra de navegação.
  • 25. Render Response Nesta fase, a árvore de componentes serverFaces é renderizada para o formato alvo Normalmente HTML É possível renderizar para outros formatos: WML XML Etc...
  • 26. Projeto e Desenvolvimento de Sistemas Web Web 2 Prof. Frank Navegação de páginas
  • 27. Configuração de navegação <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome>listar</from-outcome> <to-view-id>/listar.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>cadastrar</from-outcome> <to-view-id>/cadastrar.jsp</to-view-id> </navigation-case> </navigation-rule>
  • 28. Navegação de páginas <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome> listar </from-outcome> <to-view-id>/listar.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome> cadastrar </from-outcome> <to-view-id>/cadastrar.jsp</to-view-id> </navigation-case> </navigation-rule> index.jsp listar.jsp cadastrar.jsp
  • 29. Navegação Dinâmica Formulário Formulário Exemplo: Reservar Passagem Classe Java String processar() over-booking sucesso lotado
  • 30. Configuração <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome> over-booking </from-outcome> <to-view-id>/over.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome> sucesso </from-outcome> <to-view-id>/sucesso.jsp</to-view-id> </navigation-case> </navigation-rule>
  • 31. Managed bean Um Managed bean é uma classe cadastrada no Serves Faces e identificada através de um alias Permite invocar um formulário diretamente de um método Funciona como elemento de controle Chamando o modelo Escolhendo a visualização Utilizado para navegação dinâmica (através do retorno do método)
  • 32. Definindo o Managed bean no FaceContext.xml <faces-config> <managed-bean> <managed-bean-name> nome </managed-bean-name> <managed-bean-class> classe </managed-bean-class> <managed-bean-scope> request | session | application </managed-bean-scope> </managed-bean> </faces-config>
  • 33. Usando o managed bean Como chamar? Ao invés de colocar a String na action <h:commandLink value=&quot;Voltar“ action=&quot;index&quot;/> Usa-se a chamada ao Managed Bean <h:commandLink value=&quot; Voltar “ action=“#{beanName.metodo}&quot;/> A declaração do método deve ser public String metodo() { .... }
  • 34. Exemplo... Uma página com um formulário que recebe um valor Caso o valor digitado seja ímpar, redirecionar para uma página Caso o valor seja par, redirecionar para outra página
  • 35. Exemplo de managed bean package curso.jsf; public class Valor { private int valor; public void setValor(int valor) {this.valor = valor;} public int getValor() {return valor;} public String processar() { if ( valor % 2 == 0 ) { return “par”; } else { return “impar”; } } }
  • 36. Exemplo de faces-config <faces-config> <managed-bean> <managed-bean-name> bean </managed-bean-name> <managed-bean-class> curso.jsf.Valor </managed-bean-class> <managed-bean-scope> request </managed-bean-scope> </managed-bean> </faces-config>
  • 37. Exemplo de navegação <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome>par</from-outcome> <to-view-id>/par.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>impar</from-outcome> <to-view-id>/impar.jsp</to-view-id> </navigation-case> </navigation-rule>
  • 38. Exemplo de formulário <f:view> <h:form> Valor: <h:inputText value=&quot;#{bean.valor}&quot;/> <br/> <h:commandButton value=“Enviar“ action=&quot;#{bean.escolher}&quot;/> </h:form> </f:view>
  • 39. Funcionamento Quando o formulário é enviado, os dados são preenchidos no managed Bean e o método escolher é chamado Baseado no retorno do método a escolha de navegação é feita Baseada nos navigation-rules.