Professional Documents
Culture Documents
17 de Noviembre de 2010
Introduccin
Framework de cdigo abierto para desarrollo de aplicaciones web Java. Esta diseado para acelerar todo el ciclo de desarrollo: construccin, despliegue y mantencin de las aplicaciones en el tiempo. Struts2 es la fusin de las comunidades de Struts y WebWork, representa concepto original de Struts proveyendo un uso ms simple. Incentiva al desarrollador a adoptar la arquitectura MVC.
Model-View-Controller
Arquitectura de software considerada como un patrn de diseo que asla la lgica del dominio de la interfaz usuaria. Modelo: Maneja el comportamiento y datos de la aplicacin. Vista: Vuelve el modelo a una forma adecuada para interaccin (tpicamente UI). Controlador: Recibe entradas del usuario e inicia una respuesta llamando objetos del modelo. Instruye al modelo y vista para tomar acciones.
Model-View-Controller
Arquitectura
El Request inicial va al contenedor del Servlet (Tomcat). Pasa por una cadena estndar de filtros. Se llama a FilterDispatcher para determinar si la peticin requiere de una accin. Si el ActionMapper determina que se requiere una accin FilterDispatcher delega a ActionProxy, el que consulta al framework a travs de los archivos de configuracin (struts.xml). Luego crea un ActionInvocation. A travs de los Interceptor se invoca la Action, el Result se entrega a un template (JSP) para finalmente retornar la respuesta al Request.
Cmo funciona
1. El navegador solicita un recurso web (/hello.action,/reportes/reporte.pdf, etc). 2. El FilterDispatcher examina la solicitud y determina la Accin apropiada. 3. Los interceptores automticamente aplican funcionalidad a la solicitud. 4. El mtodo de Accin se ejecuta: execute(). 5. El resultado se enva al navegador.
Configuracin
web.xml (en /WEB-INF)
Descriptor de despliegue, incluye los componentes necesarios del framework.
Configuracin
Archivo web.xml
El nombre del filterDispatcher. La clase del filterDispatcher Detalles de mapeo URL
Archivo struts.properties
No es mandatoria su implementacin Sobreescribe las propiedades seteadas por defecto. Puede setear un ambiente de debugging ms cmodo
Struts.i18n.reload Struts.devMode Struts.configuration.xml.reload Struts.url.http.port
Archivo struts.xml
Archivo medular del comportamiento de Struts2 Sistema de Tags
<struts> : Tag ms externo <include/> : Para incluir otros archivos de configuracin <package/> : Sirve para configuracin de actions <action> : Se ocupa dentro del tag package. Se ocupa para bautizar un action, especificar su class y las pginas jsp que entrega como resultado. <constant/> : Se ocupa para cambiar propiedades del strut.properties. <bean/> : De uso avanzado
Archivo struts.xml
Actions
Son la unidad bsica de trabajo Es un POJO (Plain Old Java Object) No necesita heredar de otra clase No necesita implementar ninguna interfaz Debe estar provisto de mtodos getters y setters para tener acceso a datos de los requerimientos y de formularios
/home.action?framework=struts&version=2 setFramework(String frameworkName) setVersion(int version)
Actions
Debe implementar el mtodo execute()
Interceptors
Mayora de las prestaciones de Struts2 se realizan gracias a ellos
Manejo de excepciones Subir archivos Validacin de datos
Provee de post y pre procesamiento al action. Se organizan en pilas de capas Tienen acceso a:
El action en ejecucin Las variables de entorno Las propiedades de ejecucin.
Interceptors struts.xml
Para la configuracin se debe agregar en struts.xml:
la declaracin de los interceptors la declaracin de la pila la referencia a la pila en el action deseado
Si se desea utilizar interpectors preconfigurados, se debe hacer heredar al package del action del package strutsdefault.
Interceptors struts.xml
Interceptors
Referencias
The Apache Software Foundation: Struts Wikipedia: Apache Struts Wikipedia: Model-View-Controller RoseIndia Struts Tutorial Starting Struts 2, Ian Roughley, InfoQ.