Galera, estou fazendo dois tipos de validação
1. Validações de tela (campo vazio, validacao de senha, etc...)
2. Validações de Business ( do banco ) - checar se já existe matrícula para o mesmo aluno, por ex.
validator.addAll(errors);
validator.onErrorUse(Results.json()).withoutRoot().from(errors).serialize();
public void save(final Enrollment enrollment) {
Enrollment enrollmentToUpdate = enrollmentBusiness.find(enrollment.getId());
List<Message> errors = new Validations(){{
that(enrollment.getStudent().getId() != null, "validation","studentNotSelected");
}}.getErrors(ResourceBundle.getBundle("messages"));
validator.addAll(errors);
validator.onErrorUse(Results.json()).withoutRoot().from(errors).serialize();
if (enrollmentToUpdate == null){
enrollmentToUpdate = new Enrollment();
enrollmentToUpdate.setCreateDate(new GregorianCalendar());
}
enrollmentToUpdate.setUpdateDate(new GregorianCalendar());
enrollmentToUpdate.setDayOfPayment(enrollment.getDayOfPayment());
enrollmentToUpdate.setGrade(enrollment.getGrade());
enrollmentToUpdate.setHasAddressProof(enrollment.isHasAddressProof());
enrollmentToUpdate.setHasBirthCertificate(enrollment.isHasBirthCertificate());
enrollmentToUpdate.setHasCPFXerox(enrollment.isHasCPFXerox());
enrollmentToUpdate.setHasFacePhotos(enrollment.isHasFacePhotos());
enrollmentToUpdate.setHasHealthPlanCard(enrollment.isHasHealthPlanCard());
enrollmentToUpdate.setHasLastYearSchoolDischarge(enrollment.isHasLastYearSchoolDischarge());
enrollmentToUpdate.setHasRegistrationNumberXerox(enrollment.isHasRegistrationNumberXerox());
enrollmentToUpdate.setHasVaccinationCard(enrollment.isHasVaccinationCard());
enrollmentToUpdate.setMonthOfEnrollment(enrollment.getMonthOfEnrollment());
enrollmentToUpdate.setShift(enrollment.getShift());
enrollmentToUpdate.setStudent(enrollment.getStudent());
try {
enrollmentBusiness.saveOrUpdate(enrollmentToUpdate);
} catch (final InvalidAttributesException e) {
errors.add(new I18nMessage("validation",e.getMessage()));
}finally{
validator.addAll(errors);
validator.onErrorUse(Results.json()).withoutRoot().from(errors).serialize();
}
ajaxRedirect("enrollment/list");
}