Desenvolvimento - Java

Configurando nossa primeira Action utilizando Struts 2 no JDeveloper

No artigo anterior aprendemos como configurar o framework Struts 2 utilizando a IDE JDeveloper da Oracle. Neste artigo vamos dar continuidade, e, aprender a criar nossa primeira Action para vermos o funcionamento da camada de Controller (MVC). Estaremos utilizando o framework Struts 2.1.8.1 e o ambiente de desenvolvimento JDeveloper versão 10.1.3.4.

por Anderson Manoel Sanches



No artigo anterior aprendemos como configurar o framework Struts 2 utilizando a IDE JDeveloper da Oracle.

Neste artigo vamos dar continuidade, e, aprender a criar nossa primeira Action para vermos o funcionamento da camada de Controller (MVC).

Estaremos utilizando o framework Struts 2.1.8.1 e o ambiente de desenvolvimento JDeveloper versão 10.1.3.4.

Criando nossa Action

A partir desse momento vamos criar uma classe Java (ExemploAction) que vai conter o método a ser invocado por um link na pagina principal (índex.jsp criada em nossa artigo anterior), clique com o botão direito do mouse sobre “Application Sources” no projeto “ViewController” e selecione a opção “New”, na janela “New Gallery” selecione “General” e escolha o item “Java Class”.

Preencha a janela “Create Java Class” conforme a imagem abaixo e clique no botão "OK":

Será criada nossa nova classe ExemploAction com a seguinte estrutura:

package br.com.minhaempresa.action;

public class ExemploAction {

    public ExemploAction() {

    }

}

Vamos modificar a classe ExemploAction que irá herdar as características da classe ActionSupport.

A classe ActionSupport fornece uma implementação padrão comum para a maioria das ações.

Além de herdar as características, vamos criar um novo método chamado chamaPagina(),  este método será chamado através de um link na página index.jsp.

A ação não irá realizar nenhum processamento, apenas irá retornar uma string para que o controller possa realizar o redirecionamento.

Nossa classe ficará dessa forma:

package br.com.minhaempresa.action;

import com.opensymphony.xwork2.ActionSupport;

public class ExemploAction extends ActionSupport {

    public ExemploAction() {

    }

    public String chamaPagina() {

        return "principal";

    }

}

Alterando o arquivo struts.xml

Vamos agora alterar o arquivo struts.xml, realizando o mapeamento da Action que acabamos de criar.

Clique duas vezes para abrir o arquivo, acrescente o seguinte código:

<package name="principal" extends="struts-default">

        <action name="chamaPagina" class="br.com.minhaempresa.action.ExemploAction" method="chamaPagina">

            <result name="principal">principal.jsp</result>

        </action>

       

        <!-- Add actions here -->

</package>

Aqui criamos um novo pacote para nossas actions, depois inserimos a tag <action> responsável pelo mapeamento.

No atributo name definimos um nome para nossa action, esse nome será utilizado no link na pagina principal.

No atributo class definimos o mapeamento para a classe que estende a classe ActionSupport, responsável por realizar alguma ação no sistema.

No atributo method definimos o método que vamos chamar dentro da classe.

E, finalmente, definimos uma tag <result> responsável pelo redirecionamento após a execução de uma ação. Em nosso exemplo, se retornar da ação a string "principal", o controller irá redirecionar para a pagina principal.jsp.

Nosso arquivo struts.xml deverá ficar da seguinte forma:

<?xml version="1.0" encoding="windows-1252" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="true" />

    <constant name="struts.devMode" value="true" />

     <package name="principal" extends="struts-default">

        <action name="chamaPagina" class="br.com.minhaempresa.action.ExemploAction" method="chamaPagina">

            <result name="principal">principal2.jsp</result>

        </action>

       

    </package>

    <!-- Add actions here -->

   

    <!--outros arquivos que compoem o struts xml

    <include file="struts-<arquivo>.xml"/>

    -->

</struts>

Acrescentando o link na página index.jsp

Vamos criar o link na página index.jsp responsável por invocar o método chamaPagina() da classe ExemploAction.

Clique duas vezes no arquivo index.jsp, e, logo abaixo da tab <s:text name="mensagem" /><br />, acrescente o seguinte código:

<s:a href="chamaPagina.action">Pagina Principal</s:a>

Nossa pagina index.jsp deverá ficar da seguinte forma:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<%@ page contentType="text/html;charset=windows-1252"%>

<%@ taglib uri="/struts-dojo-tags" prefix="sx"%>

<%@ taglib uri="/struts-tags" prefix="s"%>

<html>

  <head>

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>

    <title>Executar Rotina</title>

  </head>

  <body>

      <s:text name="mensagem" /><br />

      <s:a href="chamaPagina.action">Pagina Principal</s:a>

  </body>

</html>

Criando a página principal.jsp

Vamos criar a nova página principal.jsp.

Clique com o botão direito do mouse sobre "Web Content", escolha a opção "New".

Na janela "New Gallery" selecione "Web Tier", e, "JSP".

Continue o assistente e defina o nome do arquivo como "principal.jsp", conclua o assistente.

Em nossa nova página apenas acrescente um título, nossa página ficará dessa forma:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@ page contentType="text/html;charset=windows-1252"%>

<%@ taglib uri="/struts-dojo-tags" prefix="sx"%>

<%@ taglib uri="/struts-tags" prefix="s"%>

<html>

  <head>

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>

    <title>Executar Rotina</title>

  </head>

  <body>

      <h1>Escolha as opções no menu</h1>

  </body>

</html>

Rodando nosso projeto

A partir deste momento temos nossa classe action criada, nosso arquivo struts configurado, nosso link na pagina index.jsp já acrescentado e nossa página principal criada, só nos resta rodar o projeto e verificar se tudo está correto.

Clique com o botão direito do mouse sobre o arquivo index.jsp e escolha a opção "Run". Nossa página deverá ser chamada no browser:

Vamos clicar no link "Pagina Principal".

Nossa página principal deverá ser carregada.

Bom, muito obrigado e até um próximo artigo.

Anderson Manoel Sanches

Anderson Manoel Sanches - Especialista em desenvolvimento de Software para WEB pela UfsCar - Universidade Federal de São Carlos, atua como Analista de Sistemas da Empresa Municipal de Processamento de Dados - EMPRO de São José do Rio Preto, leciona as disciplinas Aplicativos para Internet II, Projetos de Software e E-Commerce no CENTRO UNIFICADO DE EDUCAÇÃO BARRETOS -UniBarretos, trabalha com PHP, Flex, Forms e Reports Oracle, EJB, Struts 2.