jueves, 3 de julio de 2008

Seguimos con Struts

Vamos a crear un nuevo proyecto Maven (eticom-discografica-hibernate) del mismo modo que creamos un nuevo proyecto Maven (info aquí), al que le vamos a pasar, del proyecto "eticom-discografica-servlet-JSTL", las clases Cantante, Disco y Cancion, así como la carpeta "src/main/resources", del cual nos quedamos con 'hibernate-properties', 'import.sql' y 'log4j.xml', los cuales guardamos en "src/test/resources". También le borramos los paquetes que se crean automáticamente cuando creamos un nuevo proyecto maven. Seguidamente le hacemos un package-install.

Del "eticom-discografica-servlet-JSTL" borramos el paquete contenedor de las clases, y le hacemos una dependencia del proyecto que acabamos de crear (eticom-discografica-hibernate). Si nos da error, probar cerrando este proyecto, o desmavenizando y mavenizando de nuevo.

Nos descargamos el proyecto del repositorio "eticom-club-struts-basico".

Internacionalización (i18n) en Struts
Si abrimos el web.xml del proyecto, en...

<context-param>
<param-name>
javax.servlet.jsp.jstl.fmt.localizationContext
</param-name>
<param-value>Traducciones</param-value>
</context-param>

...lo que carga es el archivo "Traducciones.properties" que se encuentra en "src/main/resources", que es donde están nuetras traducciones.
Luego en "layout.jsp" hay que importar una librería de 'tags-bean' y con prefijo 'bean', para que podamos sacar la traducción a través de la etiqueta 'message':

<bean:message key="label.header" /
>

-------------------------

Existen dos tipos de etiquetas struts:
¿Cómo validar los datos de un ActionForm de Struts -formulario-?
ActionForm contiene un método 'validate()', y lo que tenemos que hacer es sobreescribir este método en nuestra clase formulario, en este caso en 'SaludoForm.java'.

Esto sirve para que el formulario, si no está correctamente definino, no llegue a acceder a la base de datos, es decir, que no lance el Action (SaludoAction).

-----------------------

Ahora estamos en 'struts-config.xml':
Si hacemos ctrl+espacio entre las etiquetas form-beans y action-mapping, nos ofrece 'global-forwards', que sirve para no repetir código, es decir, que si queremos que todas las acciones que nos devuelvan la palabra "error" nos envíen a "error.jsp", lo hacemos añadiendo la siguiente etiqueta:
<global-forwards>
<forward name="error" path="/error.jsp"></forward>
</global-forwards>
-------------------------

Si queremos hacer un plugin, solo tenemos que crear una clase que implemente a 'plugin'.

1 comentario:

Juan Antonio Ruz dijo...

Acabo de leer las últimas entradas y están muy bien. En breve "pronostico" que vas a empezar a asimilar todo para ponerlo en practica comodamente. Sigue que ya queda poco!