Java EE 8: Bean Validation

En Java EE 8, el api Bean Validation ha venido con mejoras.
Por ejemplo, ahora podemos validar un campo de tipo java.time.LocalDate

    @Past
    private LocalDate fechaIngreso;



También, determinar los límites de una lista:

    @NotEmpty
    private List<@Size(min = 1, max = 15) String> proyectos;



Al igual que un nuevo tipo de validación (y así evitar log RegEx)

    @Email
    private String email;



Podemos evaluar los campos validados desde el mismo Java (aquí un ejemplo desde una prueba unitaria):

    @Test
    public void testMemberWithNoValues() {
        Empleado e = new Empleado();
        e.setEmail("abc@");
        e.setDni("12345678");
        e.setProyectos(Arrays.asList("Proyecto 1", "Proy2", "Proy3"));

        // validate the input
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        Validator validator = factory.getValidator();
        Set<ConstraintViolation<Empleado>> vs = validator.validate(e);
        vs.forEach((v) -> {
            System.out.println("--->" + v.getPropertyPath() + ":" + v.getMessage());
        });
    }



Ahora bien, este mismo Bean con validación puede ser usado dentro de un JSF:

    <h:body>
        <h:form>
            <h:outputLabel for="nombre" value="Nombre"/>
            <h:inputText id="nombre" value="#{formBean.empleado.nombre}" /><br/>
            <h:outputLabel for="email" value="Email"/>
            <h:inputText id="email" value="#{formBean.empleado.email}" /><br/>
            <h:outputLabel for="dni" value="DNI"/>
            <h:inputText id="dni" value="#{formBean.empleado.dni}" /><br/>

            <br/>
            <h:commandButton value="Enviar" />
        </h:form>
    </h:body>



Código fuente

Puedes ver este ejemplo en acción con este código fuente completo:
https://bitbucket.org/apuntesdejava/novedades-javaee-8/src/master/bean-validation/?at=master

Post a Comment

Si quieres hacer una pregunta más específica, hazla en los foros que tenemos habilitados en Google Groups


Ah! solo se permiten comentarios de usuarios registrados. Si tienes OpenID, bienvenido! Puedes obtener su OpenID, aquí: http://openid.net/

Artículo Anterior Artículo Siguiente