5. Características
Es un framework basado en la arquitectura de
J2EE
Permite la integración mediante el uso de Servlets
y JSP
Tiene la función principal de un framework de
presentación pero permite la gestión de la lógica
de la programación de la aplicación
Permite integrar otros frameworks que facilitan la
gestión de plantillas como por ejemplo Velocity
6. Componentes
FilterDispatcher: Se encarga de gestionar
las peticiones que llegan al framework
Actions: maneja distintos tipos de petición
Interceptors: permite ejecutar código
común entre distintas acciones
Results: Permite presentar los resultados
de la petición al usuario
8. Componentes:
proceso
1. El navegador web lanza una petición que maneje struts.
La petición es capturada por el Dispatcher
2. Se aplican los interceptores, validaciones, flujos de
trabajo, subidas de archivos…
3. Se ejecuta la Action con el método execute
4. El action indica que result es el que debe aplicarse
5. Se aplican los interceptores pero en orden inverso
6. El resultado pasa de vuelta por el Dispatcher
7. El resultado es visualizado por parte del usuario
9. Componentes:
Action
Las acciones son mapeadas a una URL
Es una clase normal que tiene un método que no recibe
parámetro y o bien devuelve una String o un Result
Cuando devuelve una String el Result se define por
configuración
Hay dos modos de implementación:
Implementar la interfazcom.opensymphony.xwork2.Action
o Heredar de com.opensymphony.xwork2.ActionSupport
En este caso implementa el interfaz y dispone del
método execute y devuelve un SUCCESS
10. Componentes:
Action: Interfaz
public interface Action
{
public static final String SUCCESS = "success";
public static final String NONE = "none";
public static final String ERROR = "error";
public static final String INPUT = "input";
public static final String LOGIN = "login";
public String execute() throws Exception;
}
11. Componentes:
Result
Indicará donde pasaremos la respuesta
Dependiendo del tipo de Result nos llevará a un
componente o a otro
Esto nos permitirá presentar por ejemplo un JSP
de resultado
El tipo por defecto es dispatcher
Podemos asociar distintos results dependiendo
de condiciones, por ejemplo si un formulario
valida o no