struts-config.xml
Como ejemplo utilizaré el fichero que viene en la aplicación struts-blank, que no puedo subir debido a las polÃticas de seguridad…, pero que se puede encontrar en las distribuciones de struts.
Este fichero consta de la declaración del fichero DTD que se va a utilizar, y a continuación la descripción de las propiedades que configuran el framework struts.
Respecto a la DTD, resaltar que puedes declarar un fichero local o uno que se encuentre en internet, por ejemplo éste. Si declaramos una DTD remota más moderna que la que viene por defecto con la distribución de struts que utilizamos, al iniciar la aplicación web tratará de realizar una conexión a internet… por lo que si el servidor no puede conectarse dará un error fatal ! Por lo que recomendamos utilizar la DTD contenida en la distribución de struts
Bien, pasemos a declarar las propiedades para configurar nuestro framework. Es importante declararlas en orden, que para eso utilizamos la DTD
- Data Source Configuration, opcional. Declaramos la configuración de los objetos que represenan fuentes de datos (data source objects) JDBC 2.0 Standard Extension. Un ejemplo para configurar un pool de conexiones JDBC. En otro post espero hablar más sobre este punto
<data-sources>
<data-source type=”org.apache.commons.dbcp.BasicDataSource”>
<set-property property=”driverClassName” value=”com.mysql.jdbc.Driver” />
<set-property property=”url” value=”jdbc:mysql://localhost/pde” />
<set-property property=”username” value=”root” />
<set-property property=”password” value=”" />
<set-property property=”validationQuery” value=”SELECT COUNT(*) FROM pdetiposprocesosgenericos” />
</data-source>
</data-sources>
- Form Bean Definitions, opcional pero bastante necesario. Declaramos los formularios que vamos a utilizar en nuestro framework, asociando un nombre a una clase de tipo ActionForm, o que extiende de esta clase. Un ejemplo:
<form-beans>
<!– 001 ADMINISTRACION –>
<form-bean name=”J001001_MenuAdministracionForm” type=”com.bne.pde.PDE001Administracion.form.J001001_MenuAdministracionForm” />
</form-beans>
- Global Exception Definitions, opcional. Declaramos las excepciones que nuestra aplicación utilizará en el ámbito global, es decir, las excepciones que nuestros Actions podrÃan lanzar.
<global-exceptions>
<exception key=”timeout.session.error”
path=”/sessionerror.do”
type=”javax.servlet.UnavailableException”
scope=”request”>
</exception>
</global-exceptions>
- Global Forward Definitions, opcional. Declaramos los destinos (forwards) que nuestra aplicación web utilizará en un ámbtio global.
<global-forwards>
<forward name=”inicioAdministracion”
path=”/identificacion.do?stDestino=administracion” />
</global-forwards>
- Action Mapping Definitions, muy recomendado
declaramos las acciones de nuestra aplicación web, asociando una acción (clase que extiende de Action) y un formulario (nombre de ya declarado arriba) a una llamada, configurarla y declarar los posibles destinos de salida (forwards).
<action-mappings>
<!– 001 ADMINISTRACION –>
<action path=”/administracion” name=”J001001_MenuAdministracionForm” scope=”session”
type=”com.bne.pde.PDE001Administracion.action.J001001_MenuAdministracionAction”>
<forward name=”SUCCESS” path=”/WebContent/jsp001/JSP001001_Administracion.jsp” />
</action>
</action-mappings>
- Controller Configuration, opcional. Describe un bean ControllerConfig (org.apache.struts.config.ControllerConfig) que encapsula la configuración de un runtime
<controller processorClass = “fr.improve.struts.taglib.layout.workflow.LayoutRequestProcessor”/>
- Message Resources Definitions, declara los ficheros que contienen las claves y los mensajes de la aplicación web.
<message-resources parameter=”com.bne.pde.PDE000Arquitectura.util.Mensajes”/>
- Plug Ins Configuration, declara los plugins (org.apache.struts.action.PlugIn) que vamos a utilizar como las “tiles” o validadores.
<plug-in className=”org.apache.struts.validator.ValidatorPlugIn”>
<set-property
property=”pathnames”
value=”/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml”/>
</plug-in>