[Struts] – ActionDispatcher
Struts permite manejar eventos HTML, mediante la clase ActionDispatcher, LookupDispachAciton y MappingDispatchAction que encontramos en el paquete org.apache.struts.actions.
En la clase Action declaramos un ActionDipatcher como un nuevo manejador de eventos (EventActionDispatcher), que gestionará el destino que devolverá nuestro método execute, invocando un método público de nuestro action que se llame igual que el evento HTML generado.
public class UsuariosAction extends Action {
protected ActionDispatcher dispatcher = new EventActionDispatcher(this);
public ActionForward execute (ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
ActionForward fwDestino = mapping.findForward("ERROR");
try {
fwDestino = dispatcher.execute(mapping, form, request, response);
} catch (Exception e) {
System.out.println("ERROR – UsuariosAction.execute – Excepcion : " + e.toString());
}
return fwDestino; }
public ActionForward registrar(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
return mapping.findForward("REGISTRAR");
}
}
En el fichero struts-config.xml debemos indicar los nombres de los eventos que el Action manejará, declarándolos como "parameter" :
<action-mappings>
<action path="/usuarios" type="es.jcs.infraestructuras.control.usuarios.UsuariosAction"
name="usuariosActionForm" parameter="registrar" validate="false">
<forward name="ERROR" path="/web/jsp/error.jsp" />
<forward name="REGISTRAR" path="/web/jsp/registrarUsuario.jsp" />
</action>
</action-mappings>
En la parte HTML, el nombre del elemento que generó el evento debe estar incluido en la declaración parameter del action en el struts-config.xml, y debe ser el mismo nombre del método que queremos que se ejecute en el action.
<input type="image" name="registrar" xsrc="log.jpg" value="Registrarse">
<input type="submit" name="registrar" value="Registrarse" />
<a xhref="usuarios.do?registrarse=true">Registrarse</a>
Intentaré tener pronto un artículo en Lyckapedia.
[tags]actiondispatcher, struts[/tags]
No related posts.





























