domingo, 17 de mayo de 2009

Múltiples struts-config.xml en mi aplicación

En este post trato de explicar la forma de utilizar varios ficheros de configuración del framework Struts en nuestro proyecto de aplicación web.

Si tenéis una aplicación desarrollada bajo el framework Struts y que contiene un gran número de clases de tipo Action de Struts sobre todo, y a la hora de realizar el mapeo de estas clases en vuestro fichero struts-config.xml, os resulta un tanto difícil la comprensión o la búsqueda de las etiquetas , para facilitar la gestión del fichero podemos optar por:

1) Crer una lista de multiples strut-config separada por comas.
2) Modularizar nuestra aplicación, dividiéndola en distintos módulos para su configuración.

La opción (1), puede ser la alternativa más rápida puesto que sólo necesita crear un nuevo fichero de configuración (struts-config-nuevo.xml) e incluir la parte que queramos del mapeo, que ya teníamos en nuestro fichero strut-config.xml inicial o por defecto.

A continuación mostramos un ejemplo de cómo hacerlo:

Por un lado tenemos el fichero struts-config.xml sin dividir, es decir, con todos los Action de nuestra aplicación mapeados:


struts-config
data-sources
/data-sources
form-beans
form-bean name="formbean"
type="es.nodotodoelmonteesoregano.actionform.MyActionForm"
/form-bean
/form-beans

global-exceptions
/global-exceptions

global-forwards
/global-forwards

action-mappings

action path="/myAction1"
type="es.nodotodoelmonteesoregano.action.MyAction1"
scope="request"
forward name="confirmacion" path="/jsp/ejemplo1.jsp"/forward
/action

action path="/myAction2"
type="es.nodotodoelmonteesoregano.action.MyAction2"
name="formbean"
scope="request"
forward name="confirmacion" path="/jsp/ejemplo2.jsp" /forward
/action

/action-mappings
...
(Resto de la configuracion del strut-config que tengais)
...

Ahora vamos a proceder a divir nuestro mapeo del fichero struts-config.xml en 2 ficheros:

1º) Fichero struts-config.xml anterior:

struts-config
data-sources
/data-sources
form-beans
>>> AQUÍ YA NO ESTÁ EL MAPEO DEL ACTION FORM <<<
/form-beans

global-exceptions
/global-exceptions

global-forwards
/global-forwards

action-mappings

action path="/myAction1"
type="es.nodotodoelmonteesoregano.action.MyAction1"
scope="request"
forward name="confirmacion" path="/jsp/ejemplo1.jsp"/forward
/action

>>> AQUÍ YA NO ESTÁ EL MAPEO DEL 2º ACTION <<<
/action-mappings
...
(Resto de la configuracion del strut-config que tengais)
...

2º) Fichero
strut-config-nuevo.xml, en la misma ruta que el fichero struts-config.xml:


struts-config
data-sources
/data-sources
form-beans
form-bean name="formbean"
type="es.nodotodoelmonteesoregano.actionform.MyActionForm"
/form-bean
/form-beans

global-exceptions
/global-exceptions

global-forwards
/global-forwards

action-mappings

>>> AQUÍ YA NO ESTÁ EL MAPEO DEL 1er ACTION <<<

action path="/myAction2"
type="es.nodotodoelmonteesoregano.action.MyAction1"
name="formbean"
scope="request"
forward name="confirmacion" path="/jsp/ejemplo2.jsp" /forward
/action

/action-mappings
...
(Resto de la configuracion del strut-config que tengais)
...

3º) También necesario para que nuestra aplicación reconozca que existen dos ficheros de configuración de struts, es indicar en nuestro fichero web.xml que existen estos 2 ficheros, de la siguiente forma:

web-app
...
init-param
param-name config /param-name
param-value
/
WEB-INF/struts-config.xml , /WEB-INF/struts-config-nuevo.xml
/param-value
/init-param
...
/web-app

>>> ATENCIÓN A LA COMA (,) <<<

Con esto podemos tener más organizada nuestra aplicación y ayudar, sobretodo, a la hora de depurar y realizar siguimientos del flujo de trabajo que se efectúa en una aplicación implementada bajo el framework Struts.

1 comentario:

  1. Oye muy curioso lo de los dos struts.config, uno se acostumbra a hacerlo todo en uno, sin pensar que puede haber esta otra forma e organizacion...

    Un saludo compi ;)

    ResponderEliminar