Hoy vamos a ver un poco sobre esta especificación que forma parte de Java EE 6, y que nos sirve para realizar la validación de Java Beans o POJOs.
Esta especificación basada en anotaciones nos facilitará enormemente la validación de determinados objetos, por ejemplo representaciones java de formularios.
El funcionamiento es muy básico, encima del atributo del Java Bean ponemos la anotación, aquella que valide el comportamiento deseado. Estas propias anotaciones son muy descriptivas, por lo que leyéndolas podremos identificar que es lo que hacen. Aquí esta el listado oficial.
public class Formulario { @NotNull @Size(min=5, max=50) private String nombre; @NotBlank private String apellidos; @Min(5) private Integer edad; @Email private String mail;
Si utilizamos Spring MVC, por ejemplo podremos validar el Java Bean de forma sencilla al enviar el formulario, de la siguiente forma:
@RequestMapping(value = "/registrar", method = RequestMethod.POST) public String addCustomer(@Valid Formulario formulario, BindingResult result) { if (result.hasErrors()) { return "registro.page"; } else { return "Done"; } }
Si queremos hacer un test podemos realizarlo tambíen de forma sencilla:
@Test public void testFormWithNoValues() { Formulario form = new Formulario(); // validate the input ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); Set<ConstraintViolation<Formulario>> violations = validator.validate(form); Assert.assertTrue(violations.size() == 2); }
Como se puede ver en el test las validaciones tienen asociado un mensaje por defecto, que además se encuentra internacionalizado.
No hay comentarios:
Publicar un comentario