De struts 1 para 2

10 respostas
PePeLeGaL

galera,

tenho uma aplicacao usando struts 1. Agora, vou adicionar muitas novas funcionalidades a essa aplicacao e gostaria de saber se seria mais interessante continuar usando o 1 ou se seria melhor, ja que parece mais facil, usar o struts 2. Nesse caso, o projeto com o 1 sofreria alteracoes ?

agradecido

10 Respostas

F

Parece que o 2 é bem melhor.
Acredito que o com struts 1 sofre alterações, mas como ele terá muitas alterações acho que vale a pena mudar.

http://struts.apache.org/2.0.11/docs/migration-guide.html

T

Tenha CERTEZA que o struts2 é bem melhor… Inclusive vc pode migrar sua aplicação aos poucos, coexistindo struts 1.x e 2.x…

PePeLeGaL

coexistir os dois ? nao teria problemas ? somente adicionar jars e outros arquivos do 2 no mesmo projeto?

T

então vira anguzão sim, mas se vc precisar coexistir os dois dá. Lógico que não é o mais aconselhável… Eu disse somente no caso de migração “aos poucos”…

F

Os arquivos de mapeamento de ações são diferentes?

gibaholms

O mapeamento é um pouco parecido… ao inves de “.do” é “.action”… não existem form-beans … no struts 2 você pode usar todas as classes como POJOs … o retorno é uma string qualquer, não existem mais tipos de retorno… as classes não precisam herdar nem implementar nada … tem um ajax bizarro… eh mto loko o bagulho !

gibaholms

cara… se vc tiver MTO interessado em trocar, me avisa que eu colo uma mini-aplicação com um mapeamentozinho aki pra vc

PePeLeGaL

gibaholms

pode colocar. Fico contente.

:wink:

gibaholms

Então vamos lá…

1 - Adicionando os filtros no web.xml:

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

2 - Arquivo de configuração do struts: agora seu nome é struts.xml e ele fica no diretório “src” do projeto no eclipse (junto com os arquivos fonte “.java”)

<?xml version="1.0" encoding="UTF-8" ?>
<!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="false" />
    <constant name="struts.devMode" value="false" />
 <package name="exemplo" namespace="/" extends="struts-default">
     
     <action name="efetuarLogin" class="actions.EfetuarLogin" method="verificaLogin">
            <result>/index.jsp</result>
            <result name="erro">/login.jsp</result>
      </action>

</package>

</struts>

Vamos pra explicação: você pode separar grupos de actions por pacotes “lógicos” dentro do struts.xml, ou seja
<package name=“exemplo”… é um pacote apenas lógico, não precisa criar pasta nenhuma.
Agora na tag “action”. Aqui que são mapeadas as ações. A propriedade “name” é o nome da sua solicitação. Se vc usa um form html comum, vc chama o POST como “efetuarLogin.action”.Já se vc usa o form da taglib do struts 2, vc pode colocar só “efetuarLogin” que ele já subentende como “.action” e da td certo.

A prop “class” é o nome qualificado da classe qu vai atender a solicitação. Como eu havia dito, agora elas podem ser POJOs, e na propriedade “method” vc coloca o nome do método que a action deve chamar dentro da classe.

No result, vc retorna da classe uma string. Na tag “result”, a propr. “name” vc coloca a string que sua classe vai retornar. Se vc omite o “name”, o default é “success”. E dentro a URL que deve ser chamada em cada caso.

3 - Agora a classe actions.EfetuarLogin

package actions;

public class EfetuarLogin {
	
	public String verificaLogin(){
	     //Aqui vc faz seu retorno
                     return "success";
                    //ou no outro caso: return "erro";
	}
	
}

Observe que o nome do método é identico a propriedade “method” do mapeamento, e a classe é um simples POJO.

4 - Faz sua view JSP como sempre fez

To um poco sem tempo, então não fui muito detalhista, mas acredito que já dê uma boa noção de como funciona.

Abraço!!

I

Vai ficar um angu só se vc misturar os 2 mas tudo bem :lol: …Quanto ao struts 2 é muito melhor mesmo !!!

Criado 6 de janeiro de 2008
Ultima resposta 7 de jan. de 2008
Respostas 10
Participantes 5