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
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)
...
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:
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)
...
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 (,) <<<
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.
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...
ResponderEliminarUn saludo compi ;)