在Java中使用OVal验证框架

在Java中使用OVal验证框架,java,validation,annotations,oval,Java,Validation,Annotations,Oval,我在java项目中使用OVal框架来验证业务对象。 请参见验证类: public class ObjectValidation implements ObjectValidatable { private IValidator validator; private Map<String, String> errorMessages; public ObjectValidation() { validator = new Valida

我在java项目中使用OVal框架来验证业务对象。 请参见验证类:

    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;
    }
}
我有返回地图的getErrorMessages 我希望它像这样返回用户名不能为null

第二部分“必须不为null”可以通过cv.getMessage()获取

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


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

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

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;

        ...
     }