0

我使用 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;

        ...
     }

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

第二部分“必须不为空”可以用 cv.getMessage()

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

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

4

1 回答 1

0

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

于 2014-10-22T15:07:51.960 回答