miércoles, 13 de enero de 2010

Atributo method del action en Struts2

Atributo method del action en Struts2

En el primer ejemplo de struts2 (PrimerProgramaStruts2) se muestra la accion org.dracof.struts2.actions.MiAccion con alias miAccion, cuando se realice el llamado a esta por default struts buscara el metodo public String execute(), si no lo encuentra lanza una excepcion diciendo que El recurso requerido (No result defined for action org.dracof.struts2.actions.MiAccion and result success) no esta disponible.

Para escribir multiples metodos dentro del Action se puede usar el atributo method del elemento action de nuestro xml, quedando


<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="miAccion" method="otroMetodo" class="org.dracof.struts2.actions.MiAccion">
<result name="success">resultado.jsp</result>
</action>
</package>
</struts>


Se modifica el nombre del metodo execute por otroMetodo de la clase MiAccion y se manda el mensaje ‘Pasando por el metodo otroMetodo de MiAccion’
Quedando la clase como sigue

public class MiAccion {
public String otroMetodo() throws Exception {
System.out.println("Pasando por el metodo otroMetodo de MiAccion!");
return "success";
}
}

Con esto cada vez que se llame a miAccion se ejecutara el metodo otroMetodo.

Si probamos el ejercicio velos la salida a consola


Descargar war MethodAction.war

Descargar proyecto MethodAction.zipwar

Suerte.