#desenvolvimento

Navegação estática com JSF


Olá pessoal, este post demorou muito mais do que o previsto mas aqui está…

A navegação estática é uma navegação entre páginas pré-determinadas. Isto é, sempre que o usuário clicar em um determinado botão ele será redirecionado para uma página definida de forma fixa no código.

Vamos ao exemplo utilizando nosso projeto de base.

Crie um arquivo JSP denominado cadastro.jsp conforme o código abaixo:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Cadastro</title>
   </head>
   <body>
      <f:view>
         <h:form>
            <h:outputText value="Nome: " />
            <h:inputText value="#{userBean.nome}" />
            <h:commandButton value="Cadastrar"
                             action="cadastrar" />
         </h:form>
      </f:view>
   </body>
</html>

Este trecho de código mostra o botão responsável pela execução do redirecionamento. O valor definido na ação será utilizado para a escolha na regra da navegação.

Em nosso bean adicionaremos a propriedade nome, utilizada nas páginas do projeto:

package br.com.monteirobrena.beans;

public final class UserBean {

   private String nome;

    public void setNome(String nome) {
       this.nome = nome;
    }

    public String getNome() {
       return nome;
    }
}

A regra de navegação abaixo deve ser acrescentada no faces-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2"
   xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">

    <managed-bean>
       <managed-bean-name>userBean</managed-bean-name>
       <managed-bean-class>
          br.com.monteirobrena.beans.UserBean
       </managed-bean-class>
       <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

    <navigation-rule>
       <from-view-id>/cadastro.jsp</from-view-id>
       <navigation-case>
          <from-outcome>cadastrar</from-outcome>
          <to-view-id>/cadastrado.jsp</to-view-id>
       </navigation-case>
    </navigation-rule>
</faces-config>

Esta regra de navegação define que se o resultado recebido da página cadastro.jsp, for igual à cadastrar, a aplicação será redirecionada para a página cadastrado.jsp.

Então vamos cirar um arquivo JSP denominado cadastrado.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Cadastrado</title>
   </head>
   <body>
      <f:view>
         <h:outputText value="O usuário #{userBean.nome} foi cadastrado com sucesso!" />
      </f:view>
   </body>
</html>

Note que neste exemplo sempre que houver um click no botão “Cadastrar”, a página será redirecionada para a página cadastrado.jsp.
Este tipo de navegação é mais utilizado em links que não executam ações internas.
Atualmente existem diversas formas de tratar a navegação de um projeto web, como a navegação dinâmica utilizando Facelets, mas isto é assunto para o próximo post.
Até breve 😉

Anúncios
Padrão

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s