Validación
Validación en ataStore
Validación
Introducción
Es importante validar que los datos que se introducen en nuestra aplicación son correctos. Para ello, disponemos mecanismos de validación en el cliente y en el servidor.
La validación en el cliente mejora la usabilidad de las páginas y da una respuesta rápida al usuario sobre la corrección de los datos introducidos.
La validación en el servidor nos proporciona seguridad ante posibles ataques por inyección de código
JSR-303
La especificación JSR-303 nos da una sintaxis estándar para validar en Java basada en anotaciones.
Por ejemplo, podemos usar la anotación @Size en una clase Java para denotar que una cadena debe tener determinada longitud así:
public class Product { @Size(min=5, max=10) private String description; ... }
Validación en el servidor
La validación en el servidor la conseguimos gracias a la librería Hibernate-validator, implementación de referencia del JSR-303, que está integrada a través del framework SpringMVC
Para que SpringMVC valide una clase java (de acuerdo con las anotaciones que hemos puesto en dicha clase), añadiremos la anotación @Valid en el controller que la recoge. Por ejemplo:
@Controller public class ProductController { ... public String save(@Valid Product product) { ... } ... }
Validación en el cliente
La validación en el cliente la conseguimos gracias a la librería de javascript jquery-validation-plugin
Cuando tengamos un formulario que recoge datos para rellenar una clase java (con anotaciones de validación) basta añadir el atributo jquery:validate="${objeto}" al formulario para que se genere el código javascript que gestiona la validación, donde objeto debe ser una instancia de la clase objetivo.
Un ejemplo sería el siguiente:
La clase que genera dicho código javascript es com.atotarreu.util.dialect.jquery.ValidateAttrProcessor
Nota: aunque se ha implementado el grueso de la validación en el cliente, sólo se ha implementado algunas anotaciones. Iremos implementado el resto de anotaciones conforme vayamos necesitándolas.
Nota: aunque el plugin de validación de jQuery viene con muy pocas reglas de valicación, hay otro archivo llamado additional-methods.js que contiene bastantes más reglas.