jueves, 13 de mayo de 2010

Grails Plugin: ValidationField (Español)

Introducción
El plugin ValidationField nos permite renderizar elementos de formularios html, con la ventaja de que estos son "inteligentes" y cuando detectan errores de validación, estos son mostrados automáticamente a través de un mensaje y cambiando su estilo CSS.
Cuando el usuario envía el formulario, si hay errores de validación de dominio, los elementos del formulario cambiarán su borde a rojo y el mensaje configurado será mostrado bajo este (en rojo, también).
El mensaje de error puede ser mostrado o no, tan solo ajustando la propiedad "showMessage" a "true" o "false".
El color de los mensajes y de los elementos del formulario pueden ser modificados a través de CSS, al igual que el mensaje de error.
 
Instalación

En la línea de comando, en tu aplicación grails escribe: 

grails install-plugin validation-field

También puedes descargar el plugin y escribir:

grails install-plugin [folder_de_descarga]/validation-field-0.2.zip

Eso es todo

Utilizando el plugin Validation Field
En tu archivo/plantilla gsp, dentro de las etiquetas <head> pon esta línea, para importar la hoja de estilos CSS

<g:validationFieldIncludes />

Ahora puedes usar las etiquetas  <g:validationField />y <g:validationSelect /> en vez de <input .../> y <select>.

Uso para mostrar elementos input y textArea <g:validationField ... />
Solamente se requieren 3 propiedades para la etiqueta <g:validationField />:

tag: Tipo de etiqueta html ( input o textarea ).
domain: El objeto a ser evaluado (algo así como ${myObject}).
field: El nombre del campo o propiedad del objeto.

ejemplos:

<g:validationField tag="textarea" domain="${person}" field="name" />

Esta línea mostrará un elemento textArea en la página, cuando el usuario envíe el formulario (Si el campo nombre ha quedado vacío y este fué ajustado como obligatorio en la clase de dominio) se mostrará el mismo elemento textArea, pero su estilo CSS será reemplazado automáticamente por uno más visible, y será mostrado el mensaje de error respectivo.

<g:validationField tag="input" type="text"  domain="${person}" field="name" />

Igual que el anterior, pero e vez de un textArea, será mostrado un input text.

Puedes usar todas las propiedades html ( style, width, height, class, etc ) con la etiqueta <g:validationField> (funciona igual para elementos "input" de tipo "password")


Uso para mostrar elementos select <g:validationSelect ... />

Para usar etiquetas <g:validationSelect .../> las propiedades son exactamente las mismas que usando la etiqueta de Grails <g:select> además de las propiedades requeridas por el plugin: "domain" y "field".

ejemplo:


<g:validationSelect domain="${person}" field="country" from="${Country.list()}" value="${person.country.id}" optionKey="id" optionValue="name" />


 Las propiedades 'domain' y 'field' son propias del plugin ValidationField, el resto pertenecen a la etiqueta de Grails <g:select />.


Nota: Documentación acerca de la etiqueta <g:select> en: http://grails.org/doc/latest/ref/Tags/select.html


Otras propiedades (para ambas etiquetas, validationField y validationSelect):

value:Valor por omisión a ser mostrado.
messageErrorClass: Nombre de la clase CSS para reemplazar el estilo CSS del mensaje de error/validación.
fieldErrorClass: Nombre de la clase CSS, para reemplazar la clase del input/textArea/select cuando hay un error de validación.
customErrorMessage: Si no quieres mostrar el mensaje i18n, puedes cambiarlo aquí.
showMessage: String "true" o "false"para indicar si deseas mostrar el mensaje de error u omitirlo (y solo mostrar el cambio de estilo del campo).

1 comentario:

  1. Felicidades por el blog, lo encuentro muy intersante y te animo a seguir publicando artículos tan interseantes como éste.
    Saludos!

    ResponderEliminar