José Urzúa Reinoso
    Memoria

Next: Modelo Up: Introducción Previous: Patrón de Diseño MVC   Índice de Contenidos

Introducción al Marco de Trabajo de Struts

Usando el patrón de diseño MVC, las aplicaciones Struts tienen tres componentes principales: un servlet controlador, que está proporcionado por el propio Struts, páginas JSP (la "vista"), y la lógica de negocio de la aplicación (o el "modelo").

El servlet controlador Struts une y enruta solicitudes HTTP a otros objetos del marco de trabajo, incluyendo JSP y subclases del tipo org.apache.struts.action.Action[3] proporcionadas por el desarrollador Struts. Una vez inicializado, el controlador analiza un archivo de configuración de recursos, el que define (entre otras cosas) el mapeo de acciones para una aplicación. El controlador usa estos mapeos para convertir las solicitudes HTTP en acciones de aplicación.

El mapeo de acciones normalmente definirá: la ruta al archivo solicitado, el tipo de objeto (subclase del Action) que actuará sobre la solicitud y otras propiedades según se necesite.

El objeto Action puede manejar la solicitud y responder al cliente (normalmente un navegador Web), o indicar a que control debería ser reenviado. Por ejemplo, si el ingreso de un nombre de usuario y contraseña en un formulario tiene éxito, una acción asociada podría ser el reenviar la petición hacia el Menú principal de la aplicación.

Los objetos Action tienen acceso al servlet controlador de la aplicación, y por eso tienen acceso a los métodos del servlet. Cuando se reenvía un control, un objeto Action puede reenviar indirectamente uno o más objetos compartidos, incluyendo JavaBeans, situándolos en una de las colecciones estándar compartidas por los servlets Java.

Un objeto Action puede crear un bean de tarjeta de compra, o un ítem de la tarjeta, situando el bean en la colección de la sesión, y luego reenviando el control a otro mapeo. Este mapeo podría usar una página JSP para mostrar los contenidos de la tarjeta del usuario. Como cada cliente tiene su propia sesión, cada uno también tendrá su propia tarjeta de compra. En una aplicación Struts, la mayoría de la lógica del negocio se puede representar usando JavaBeans. Una Action puede llamar a las propiedades de un JavaBean sin conocer realmente como funciona. Esto encapsula la lógica del negocio, para que la Action pueda enfocarse en el manejo de errores y dónde reenviar el control.

Los JavaBeans también se pueden usar para manejar formularios de entrada. Un problema clave en el diseño de aplicaciones Web es retener y validar lo que el usuario ha introducido entre solicitudes. Con Struts, se puede definir un conjunto de clases bean formulario (subclases de org.apache.struts.action.ActionForm), y almacenar fácilmente los datos de un formulario de entrada en estos beans formularios. El bean se graba en una de las colecciones estándar o de contexto compartidas, por eso puede ser usado por otros objetos, especialmente un objeto Action.

Un bean de formulario Struts se declara en la configuración de recursos definida en un archivo fuente Java, y enlazado a un ActionMapping usando un nombre de propiedad común. Cuando una solicitud llama a un Action que usa un bean de formulario, el servlet controlador recupera o crea el bean formulario, y lo pasa el objeto Action. Este objeto entonces puede chequear los contenidos del bean de formulario antes de que su formulario de entrada se muestre, y también la cola de mensajes a manejar por el formulario. Cuando está listo, el objeto Action puede devolver el control con un reenvío a su formulario de entrada, usando un JSP. El controlador puede responder a la solicitud HTTP y dirigir al cliente al JSP correspondiente.

El marco de trabajo Struts incluye etiquetas personalizadas que pueden rellenar automáticamente los campos de un formulario o un bean de formulario. Lo único que la mayoría de las páginas JSP necesitan saber sobre el resto del marco de trabajo son los nombres de los campos apropiados y dónde enviar el formulario. Los componentes como los mensajes "encolados" por el Action pueden salir usando una simple etiqueta personalizada. También se pueden definir otras etiquetas especificas de la aplicación para ocultar detalles de implementación de las páginas JSPs.

Las etiquetas personalizadas en el marco de trabajo Struts están diseñadas para usar las características de internacionalización incluidas en la plataforma Java. Todas las etiquetas de campos y los mensajes pueden recuperarse desde un recurso de mensajes, y Java puede proporcionar automáticamente el recurso correcto para el idioma y país de un cliente. Para proporcionar mensajes para otro idioma, simplemente se agrega otro archivo con las etiquetas escritas en dicho idioma.

Junto al internacionalismo, otros beneficios de esta aproximación son las etiquetas consistentes entre formularios, y la posibilidad de revisar todas las etiquetas y mensajes desde una localización central (en el archivo en donde están definidas).

Un diagrama de como funcionaría el patrón MVC, con Struts, en un aplicación web se muestra en la figura  3.2.

Figure: Patrón MVC en una aplicación web.
\begin{figure}\begin{center}
\epsfig{file=diagramas/mvcAplicado.eps, width=14cm}\end{center}\end{figure}


Next: Modelo Up: Introducción Previous: Patrón de Diseño MVC   Índice de Contenidos
2003-01-14
 


Estudios
Curriculum
Tesis Magister
Paper
Memoria
DTEs
CADCC 2002

Personal
Blog
Rugby
Xblast!
Parcela 31
Contacto


Inicio
Valid HTML 4.01! View Jose Urzua's profile on LinkedIn