FeaturesPluginsDocs & SupportCommunityPartners

Navegando páginas em uma aplicação Web

Este tutorial mostra como configurar a navegação de página no NetBeans IDE 6.0 e 6.1. Primeiro crie uma aplicação Web no IDE que use navegação simples entre duas páginas. Um botão na primeira página leva você para a segunda página. Depois, você modifica a aplicação para que determine, em tempo de execução, que páginas exibir com base no valor retornado por um componente Lista suspensa. Também são apresentadas alternativas e métodos mais avançados de navegação dinâmica, que permitem que a navegação de página ocorra assim que uma seleção seja feita na Lista suspensa.

Duração esperada: 20 minutos

Conteúdo

 O conteúdo desta página se aplica ao IDE NetBeans 6.0 e 6.1

Para seguir este tutorial, você precisa dos seguintes recursos e softwares.

Software ou recurso Versão necessária
NetBeans IDE Web e Java EE versão 6.1 ou 6.0
Java Development Kit (JDK) versão 6 ou
versão 5
Componentes do JavaServer Faces/
Plataforma Java EE
1.2 com Java EE 5* ou
1.1 com J2EE 1.4
Servidor da aplicação GlassFish V2
Banco de dados Viagem Não é necessário

* Para tirar vantagem dos recursos Java EE 5 do NetBeans IDE , use um servidor da aplicação que seja totalmente compatível com a especificação Java EE 5, tal como o Servidor da aplicação GlassFish V2 UR2. Se você estiver usando um servidor diferente, consulte as Notas de versão e as Perguntas freqüentes para saber problemas conhecidos e soluções alternativas. Para obter informações detalhadas sobre os servidores suportados e a plataforma Java EE, consulte as Notas de versão.

Observação para usuários do NetBeans IDE 6.1:

  • Criar um projeto no NetBeans 6.1 inclui novas opções que podem ser deixadas como padrão. Por exemplo, a caixa de verificação Usar pasta dedicada para armazenar bibliotecas pode ficar desmarcada.
  • Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

Criando a primeira página

Na primeira parte deste tutorial, você cria uma aplicação Web com duas páginas e navega entre estas duas páginas usando um botão. Depois, você adiciona um componente Lista suspensa que permite ao usuário escolher a página de destino em tempo de execução.

Primeiro, crie uma página que contenha um componente Texto estático e um componente Botão.

  1. Crie um novo projeto de aplicação Web chamado NavigationExample que use o servidor da aplicação GlassFish V2 e o framework JavaServer Faces Visual Web.

    O novo projeto aparece com a página inicial aberta no Visual Designer. A figura abaixo ilustra a página que você criará nas etapas a seguir:

    Desesign de Page 1
  2. Arraste um componente Texto estático da seção Básico da Paleta e solte-o na página. Altere a propriedade text do componente para Page One, digitando diretamente sobre o texto padrão no componente.
  3. Arraste um componente Botão da Paleta, solte-o na página, e altere sua propriedade text para Go.

    Observação: existe um problema conhecido que afeta a largura do componente Botão do JSF 1.2 no IE7. A solução alternativa é colocar o componente Botão em um componente de layout (Painel de grade, Painel de grupo ou Painel de layout). Redimensionar o componente de layout redimensiona automaticamente o componente Botão.

Navegando entre duas páginas

Depois, adicione outra página à aplicação e especifique a navegação entre a primeira e a segunda página criando um link ou um conector de página.


Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

  1. Clique com o botão direito do mouse em um espaço vazio na área de edição do Editor visual e escolha Navegação de página no menu pop-up.

    O editor de fluxo de página exibe um ícone para Page1.jsp , que representa a página criada na seção anterior. Observe que esse ícone possui quatro recursos:
    1. O emblema indica que tipo de página é representado pelo ícone. A seta verde indica que se trata da página principal do projeto.
    2. O nome do arquivo representado pelo ícone distingue as páginas no produto.
    3. O sinal de adição expande o ícone para exibir os componentes na página.
    4. A porta do conector é usada para desenhar as linhas de navegação entre as páginas.
  2. Crie uma nova página JSP, da seguinte forma:

    1. Clique com o botão direito do mouse na área de edição e escolha Novo arquivo.
    2. Na caixa de diálogo assistente para Novo arquivo, selecione Java Server Faces em Categorias e Página JSF Visual Web em Tipos de arquivo e clique em Próximo.
    3. Aceite o nome padrão, Page2, e clique em Terminar.

      Page2.jsp é aberto no Visual Designer. Clique na aba Faces-config.xml para reabrir o editor de fluxo de página. A Figura 2 mostra o editor de fluxo de página com ambas as páginas.
  3. Clique no sinal de adição no ícone Page1.jsp para aumentá-lo de forma que você possa ver o ícone button1.
  4. Clique no ícone button1 e arraste uma linha para o ícone Page2.jsp. É exibido um conector que está ancorado na primeira página e termina na segunda página. Por padrão, o conector recém-criado é denominado case1.
  5. Clique duas vezes no nome do conector e altere o nome de case1 para Page 2.

    A figura seguinte mostra o editor de fluxo de página com o conector entre as duas páginas.

    Editor de navegação de página
  6. Clique em XML na barra de ferramentas de edição para ver o código gerado nas duas últimas etapas. A regra de navegação em negrito abaixo é adicionada sob o código do bean gerenciado, representado por reticências (...).

    Amostra de código 1: Código gerado
    <?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"> ... <navigation-rule> <from-view-id>/Page1.jsp</from-view-id> <navigation-case> <from-outcome>Page 2</from-outcome> <to-view-id>/Page2.jsp</to-view-id> </navigation-case> </navigation-rule> </faces-config>

    O código adicionado dentro das marcas faces-config especifica uma regra de navegação simples para esta aplicação Web. Cada regra de navegação especifica um página de origem e uma ou mais páginas de destino.

Adicionando componentes a uma segunda página

Agora adicione um rótulo para a segunda página a fim de distingui-la visualmente da primeira página e execute a aplicação.


Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

  1. Clique em Fluxo de página na barra de ferramentas de edição.
  2. Clique duas vezes no ícone de Page2.jsp.

    A página se abre no Visual Designer.
  3. Coloque um componente Texto estático na página e altere a propriedade text para Page Two, como mostrado na figura seguinte.

    Layout de Page 2
  4. Implante a aplicação pressionando F6.
  5. Depois de a aplicação Web ter sido implantada, a Página um se abre no navegador, como mostrado na figura abaixo:

    Aplicação Web de navegação simples
  6. Clique no botão Ir, que leva você da primeira página para a segunda.

Nesta seção, você criou duas páginas e estabeleceu a navegação simples de uma para a outra. Na próxima seção, você irá estabelecer a navegação baseada nas seleções de um componente Lista suspensa.

Adicionando uma lista suspensa na navegação dinâmica

Agora você irá aprender sobre a navegação dinâmica de página. Você adiciona um componente Lista suspensa à primeira página da aplicação. O componente Lista suspensa permite ao usuário escolher a página de destino em tempo de execução. Depois, você adiciona uma terceira página à aplicação para que a lista suspensa contenha duas opções de destino.

A figura abaixo ilustra as modificações que você fará na Página 1 nas etapas a seguir:

Layout da primeira página modificada

Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

  1. Abra Page1.jsp no Visual Designer.
  2. Coloque um componente Lista suspensa sob o componente Texto estático.
  3. Clique com o botão direito do mouse em Lista suspensa e escolha Configurar opções padrão.
  4. Na caixa de diálogo rotulada Personalizador de opções - dropDown1, substitua os valores de cada um dos itens padrão pelos valores ilustrados na figura abaixo. Clique em cada uma das células da tabela para editar o valor e pressione Enter depois de editar cada campo para que a alteração seja aceita.

    A caixa de diálogo Personalizador de opções
  5. Clique em OK para salvar todas as alterações.

Adicionando a terceira página

Em seguida, você cria uma terceira página para a qual a primeira página pode navegar.

  1. Na janela Propriedades, clique com o botão direito do mouse no nó NavigationExample > Páginas da Web e escolha Novo > Página JSF Visual Web. No assistente para Nova página JSF Visual Web, clique em Terminar. O IDE cria Page3.jsp e a exibe.
  2. Arraste um componente Texto estático da janela Paleta e solte na página. Defina o texto deste componente como Página três.

Implementando navegação de página dinâmica

Nesta seção, você ativa a navegação dinâmica da página. Com a navegação dinâmica da página, a aplicação determina em tempo de execução que página é exibida quando o usuário clicar no botão Ir da primeira página.


Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

  1. Abra o Editor de fluxo de página.
  2. Clique no ícone Page1.jsp para mostrar seu conteúdo e arraste uma linha do conector a partir da porta do conector do botão para o ícone Page3.jsp.
  3. Altere o nome do conector de case1 para Page 3.
  4. Clique duas vezes no ícone Page1.jsp para abrir a página no Visual Designer.
  5. Clique duas vezes no componente de botão Ir para exibir o código-fonte do método manipulador de ações no editor de Java.
  6. Substitua a instrução prerender no método pelo código que aparece abaixo em negrito.

    Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Se estiver usando o NetBeans IDE 6.1, você deve adicionar manualmente um atributo de vinculação à Lista suspensa em Page 1. Para fazê-lo, clique com o botão direito do mouse no componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

    Amostra de código 2: Instrução de retorno
    public String button1_action() {
         return (String) dropDown1.getValue();
                         }

Implantando a aplicação

Teste a navegação entre as páginas.

  1. Implante a aplicação pressionando F6.
  2. Na primeira página, selecione Página 2 na lista suspensa e clique em Ir para ir para a segunda página.
  3. Na Página 2, clique no botão Voltar do navegador para voltar para a primeira página.
  4. Agora selecione Página 3 na lista suspensa e clique em Ir para ir para a terceira página.

Implementando navegação de página dinâmica avançada

Na seção anterior, a navegação dinâmica da página é manipulada de forma direta. O usuário seleciona a página para a qual navegar na lista suspensa e clica no botão Ir. Se quiser que a alteração da página se torne efetiva assim que o valor da lista suspensa for alterado, use as etapas a seguir para modificar o projeto criado nas seções anteriores.


Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

  1. Clique na aba Page1 e em Design na barra de ferramentas de edição para alternar para o Visual Designer.
  2. Clique com o botão direito do mouse no botão Ir e selecione Excluir.
  3. Clique duas vezes no componente Lista suspensa para ver o código da classe da Page1 no editor de Java.
  4. Adicione o código seguinte em negrito ao método manipulador dropDown1_processValueChange(). As duas primeiras linhas do código recuperam uma referência de objeto da sua aplicação. A partir do objeto de aplicação, você pode obter uma instância do Manipulador de navegação. Chamar o método handleNavigation() neste objeto especifica o valor que é recuperado do componente Lista suspensa, que especifica a página para a qual navegar.

    Amostra de código 3: Método do manipulador de navegação
    public void dropDown1_processValueChange(ValueChangeEvent event) {
        Application application = getApplication();
        NavigationHandler navigator = application.getNavigationHandler();
        FacesContext facesContext = getFacesContext();
        navigator.handleNavigation(facesContext,
            null,(String) dropDown1.getValue());
    
                         }  

    Observe que linhas vermelhas aparecem para indicar que as classes Application, NavigationHandler e FacesContext não foram encontradas. Você importará estas classes na etapa seguinte.
  5. Clique com o botão direito do mouse no Editor de código-fonte e escolha Corrigir importações para adicionar automaticamente as seguintes instruções de importação próximas à parte superior do arquivo de origem:

    Amostra de código 4: Instruções de importação para o método do manipulador de navegação
    import javax.faces.application.Application;
    import javax.faces.application.NavigationHandler;
    import javax.faces.context.FacesContext;
                         
  6. Clique em Design na barra de ferramentas de edição para exibir Page1 no Visual Designer.
  7. Clique com o botão direito do mouse no componente Lista suspensa e selecione Enviar automaticamente ao alterar para indicar que o item selecionado será enviado automaticamente na seleção.
  8. Implante e execute a aplicação.
  9. Escolha o item Página 2 na lista suspensa para navegar da primeira página para a segunda. Clique no botão Voltar para voltar à primeira página.
  10. Escolha o item Página 3 na lista suspensa para navegar da primeira página para a terceira.

Fazendo mais: Trabalhando com um número grande de páginas

O cenário descrito neste tutorial funciona para um número relativamente pequeno de páginas, mas diversas aplicações reais requerem a navegação de dezenas de páginas. Para estabelecer este tipo de navegação:


Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

  1. No editor de Navegação de página, clique no botão XML na barra de ferramentas de edição.
  2. Adiciona uma regra de navegação como a primeira entrada no XML abaixo. Defina <from-view-id> como /*, defina <from-outcome> como alguma string de identificação, e defina <to-view-id> como a página de destino.

    Amostra de código 5: Navegação de página XML para aplicações com um número grande de páginas
    <?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">
    <navigation-rule>
    <from-view-id>/*</from-view-id>
    <navigation-case>
    <from-outcome>login</from-outcome>
    <to-view-id>/Page3.jsp</to-view-id>
    </navigation-case>
    </navigation-rule>
    <navigation-rule>
    <from-view-id>/Page1.jsp</from-view-id>
    <navigation-case>
    <from-outcome>case1</from-outcome>
    <to-view-id>/Page2.jsp</to-view-id>
    </navigation-case>
    </navigation-rule>
    </faces-config>

    Quando você voltar para o editor de Navegação de página, este irá mostrar erros, mas pode ignorá-los.

  3. Em todos os métodos de manipulação de ações dos componentes de ação que você deseja enviar para a página, faça os métodos retornarem from-outcome (nesse caso, "login"), como mostrado abaixo:
    public String button1_action() {
    return "login";
    }

Resumo

O fluxo de trabalho típico para a implementação da navegação de página é o seguinte:

  1. Criar as páginas.
  2. Colocar na página os componentes que oferecem suporte à navegação, como botões e listas suspensas.
  3. Usando o editor de fluxo de página, desenhe conectores entre os componentes e as páginas.
  4. Implementar navegação mais avançada usando o método manipulador dropDown1_processValueChange().

Consulte também




Esta página foi modificada pela última vez em 15 de abril de 2008


Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by