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!!