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.
Woww gracias. Oye pero que pasa si el atributo method tiene el siguiente formato method={1} ¿Mm?
ResponderEliminar