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
También, determinar los límites de una lista:
Al igual que un nuevo tipo de validación (y así evitar log RegEx)
Podemos evaluar los campos validados desde el mismo Java (aquí un ejemplo desde una prueba unitaria):
Ahora bien, este mismo Bean con validación puede ser usado dentro de un JSF:
https://bitbucket.org/apuntesdejava/novedades-javaee-8/src/master/bean-validation/?at=master
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
تعليقات
إرسال تعليق
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/