Documente Academic
Documente Profesional
Documente Cultură
Spring MVC Bean Validation es una de las características más utilizadas de Spring MVC y
nos permite apoyarnos en la JSR 303 (Bean Validation ) para validar la información de los
objetos que estemos introduciendo con un formulario. Para ello deberemos incluir en el
proyecto de Maven las dependencias de Spring MVC así como las de Hibernate Validator
que implementa la especificación JSR 303.
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.3.Final</version>
Utilizando Spring MVC Bean Validation
</dependency>
</dependencies>
<mvc:annotation-driven />
<context:component-scan base-
package="com.arquitecturajava.controller" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolv
er">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
Utilizando Spring MVC Bean Validation
</beans>
Realizadas estas dos primeras operaciones construiremos un formulario que nos permite
introducir el nombre y la edad de una Persona.
</form:form>
</body>
Utilizando Spring MVC Bean Validation
</html>
package com.arquitecturajava.negocio;
import javax.validation.constraints.Min;
import javax.validation.constraints.Size;
@Min(0)
private int edad;
Como se puede observar se ha utilizado la anotación @Min para asegurar que el valor
mínimo del campo edad es cero.
package com.arquitecturajava.controller;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import com.arquitecturajava.negocio.Persona;
@Controller
public class PersonaController {
Utilizando Spring MVC Bean Validation
@RequestMapping(value ="/verPersona")
public String enviar(@Valid Persona persona, BindingResult
bindingResult) {
if (bindingResult.hasErrors()) {
return "formularioPersona";
}else {
return "verPersona";
}
}
@RequestMapping(value="/formularioPersona")
public String formularioPersona(@ModelAttribute Persona persona) {
return "formularioPersona";
}
}
En este caso el método enviar incluye una anotación @Valid que se encarga de comprobar si
las validaciones de la clase Persona se cumplen o no. En el caso de que se cumplan pasamos
a una página de destino que muestra los datos de la Persona. En caso contrario retornamos
el control a la página original si la edad es negativa.
Utilizando Spring MVC Bean Validation
Con estos datos Spring MVC creará un objeto de tipo Persona y le pasará la información del
formulario. Las anotaciones de Bean Validation comprobarán si el objeto es válido.
De esta forma habremos integrado Bean Validation con Spring MVC. Una de las grandes
ventajas de Bean Validation es que únicamente implementamos las validaciones en un lugar.