Validaciones "client-side" en Struts
El siguiente artículo muestra como utilizar el framework de validación de Struts para incorporar validaciones client-side utilizando JavaScript.
Introducción
Struts es un framework para crear aplicaciones Web utilizando Java. Emplea el patron MVC model 2.
Dentro de las herramientas que provee se destacan: Custom Tags, Tiles (manejo de estilos y plantillas de diseño), framework de validación (validaciones declarativas en archivos XML), manejo genérico y por acción de las acciones e Internacionalización.
Framework de validación en Struts
Struts permite manejar validaciones en los ActionForm. Para esto debemos sobreescribir el método "validate()" y configurar en el struts-config.xml que se valide el form antes de llamar al Action (atributo "validate"). Lamentablemente este manejo no promueve la reutilización de código y controles, debemos definir las validaciones para cada propiedad en el método. Un ejemplo claro de esto es validar simplemente que las propiedades son requeridas.
Por esto Struts provee un manejo de validaciones declarativas. Esto permite asociar en un archivo XML (generalemente llamado validation.xml) reglas a propiedades de un ActionForm.
Ejemplo:
<form-validation>
<formset>
<form name="ExampleDynaForm">
<field
property="firstName"
depends="required">
<arg0 key="label.firstName"/>
</field>
</form>
</formset>
</form-validation>
Esto permite asociar al ActionForm "ExampleDynaForm" la validación de "required" sobre la propiedad "firstName". En caso de no validar esta regla se redirecciona a la página de input, generando un mensaje de error para ser visualizado en el JSP.
Sobre más información sobre el framework de validación acceder al siguiente artículo
Validaciones Client-Side con el framework de validaciones de Struts
La validación antes mencionada es procesada en el Servidor. No obstante Strust permite definir validaciones en el lado del cliente (Client-Side). Para esto se debe activar la misma agregando el custom tag que incorpora las validaciones JavaScript en el HTML generado al cliente.
<html:javascript formName="ExampleDynaForm"/>
Esta línea tiene un atributo particular que es el "formName". Este debe ser exactamente igual al nombre del ActionForm definido en el archivo struts-config.xml y sobre el cual se configuran las reglas de validación. El código JavaScript con las funciones se incorpora a partir de la definición de las reglas (generalmente en el archivo "validator-rules.xml). Esta debe tener un subtag <javascript> con la/las funciones de validación.
El método base de validación se llama validateXXX, donde XXX es el nombre del ActionForm (igual al atributo formName)
El conjunto de reglas base que provee Struts ya tiene configurada sus funciones JS.
Una vez que se agregan las funciones de validación por medio de la llamada al custom tag, se debe invocar a la misma antes de enviar el pedido o request al servidor. Por ejemplo si se tiene un form con varios input y se realiza el request al hacer el submit del mismo, es necesario agregar la llamada al método en el evento "onsubmit". A continuación se muestra el ejemplo:
<html:form action="validationDyna" onsubmit="return validateExampleDynaForm(this);">
...
</form>
Si tienen dudas no duden en seguir la documentación de Struts o enviar una duda al foro (http://foro.juguy.org).
Saludos a todos, Martin
|