我使用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 或其他字段?
答案 0 :(得分:0)
查看ConstraintViolation.getCauses()和ConstraintViolation.getContext()方法。他们应该提供你需要的东西。