Los principales componentes de framework son:
DispatcherFilter: Es el punto de entrada del framework. A partir de el se lanza la ejecución del procesamiento para cada request que involucre al framework. Sus principales responsabilidades son la de ejecutar los actions, comenzar la ejecución de la cadena de interceptors asociados al request, limpiar el contexto sobre el cual se ejecuta un action, a esto ultimo se le conoce como ActionContext.
Interceptors: Son clases que siguen el patrón interceptor, realizan tareas muy similares a los advice de AOP. Se encargan de interceptar la invocación a un Action. Permiten realizar operaciones antes y después de la invocación de un Action. También permiten evitar que un Action se ejecuto. Nos sirve para reutilizar cierta funcionalidad que queremos aplicar a un conjunto de Actions. Struts2 trae definidos un conjunto de interceptors por defecto, que le permite realizar un conjunto de acciones sobre los Actions. el Request y Response.
Actions: Serán lo encargados de ejecutar la lógica necesaria para manejar un reques determinado. Los Actions no estan obligados a implementar o heredar de una interfaz o clase ya definida. Pueden ser POJOs. Igualmente, struts2 posee una interfaz Action. Esta interfaz permite definir el método por defecto que se ejecutará sobre el Action para que no tengamos que definirlo por otro medio.
Results: Son Objetos que encapsulan el resultado de un Action. Los Actions de la aplicación simplemente devolverán un String en sus métodos. Un Action puede devolver diferentes resultados luego de su ejecución.
Como se ha mencionado anteriormente, este framework esta basado en el patrón modelo-vista-controlador (MVC), el cual busca reducir el acoplamiento dividiendo las responsabilidades en tres capas:
El modelo, que hace referencia a los datos que maneja la aplicación y las reglas de negocio que operan sobre ellos y que se traducen en Struts2 en las acciones.
La vista, encargada de generar la interfaz con la que la aplicación interacciona con el usuario. En Struts2 equivale a los resultados.
El controlador, que comunica la vista y el modelo respondiendo a eventos generados por el usuario en la vista, invocando cambios en el modelo, y devolviendo a la vista la información del modelo necesaria para que pueda generar la respuesta adecuada para el usuario. El controlador se implementa en Struts2 mediante el filtro filterdispatcher.
Arquitectura simple, fácil de extender.
Las librerías son fáciles de manipular con FreeMaker
Se pueden utilizar espacios en blanco
En la validación, el lado del cliente solo funciona con reglas establecidas para las acciones
Brinda facilidad para realizar pruebas
Evita configuraciones obias y redundantes
Proveee una fácil instalacion de pluging
Utiliza las POJOForms en vez de ActionForms, esto provee la facilidad de utilizar cualquier JavaBeans para capturar la entrada de información y trasladarla a una ActionClass
Se codifica menos con la forma Stylesheat-driven la cual provee sus propias marcas
Brinda un mejor diseño.
La siguiente imagen muestra el funcionamiento básica de Struts2, el usuario primero realiza una peticion, esta pasa por el filtro FilterDespatcher, despues va al ActionMapper, luego al ActionProxy, se dirige al Struts.xml para buscar la clase de acción y por ultimo ejecuta la acción que en este caso es un Login.
No hay comentarios:
Publicar un comentario