在Java中使用OVal验证框架

时间:2013-12-08 14:28:53

标签: java validation annotations oval

我使用OVal框架来验证我的java项目中的业务对象。 请参阅验证课程:

    public class ObjectValidation implements ObjectValidatable {

    private IValidator validator;
    private Map<String, String> errorMessages;

    public ObjectValidation() {
        validator = new Validator();
    }

    public boolean isValid() {
        if (validate().size() > 0)
            return false;
        return true;
    }

    public List<ConstraintViolation> validate() {
        return validator.validate(this);
    }

    public Map<String, String> getErrorMessages()
    {
        if(this.isValid()) return null;
        errorMessages =  new HashMap<String, String>(); 

        for(ConstraintViolation cv : this.validate())       
            errorMessages.put(cv.???, cv.getMessage());

        return errorMessages;
    }
}

public class Account extends DomainObject {

    @NotNull
    @NotEmpty
    @NotBlank
    @Length(max = 5)
    private String userName; // How Get This ???


    private String password;
    private int securityId;
    private String securityAnswer;

        ...
     }

我有getErrorMessages返回Map 我希望它像这样返回 userName-必须不为空

第二节“必须不为空”可以通过cv.getMessage()

获得

但是第一个有验证注释的部分是我的问题

如何获取具有验证注释的 userName 或其他字段

1 个答案:

答案 0 :(得分:0)

查看ConstraintViolation.getCauses()和ConstraintViolation.getContext()方法。他们应该提供你需要的东西。