我正在尝试使用Spring Validator验证对象并返回有意义的响应消息。
我希望它检查给定String
只能有5个特定值的条件。
反而发生的事情是,我得到一个NotReadablePropertyException
抛出并基本上没有返回......
我做错了什么?
@Override
public void validate(Object obj, Errors error) {
Jobs job = (Jobs) obj;
String recurrence = job.getRecurrence();
if(!recurrence.equals(RecurrenceStatus.TEST)
&& !recurrence.equals(RecurrenceStatus.DAILY) && !recurrence.equals(RecurrenceStatus.FREQUENTLY)
&& !recurrence.equals(RecurrenceStatus.WEEKLY) && !recurrence.equals(RecurrenceStatus.MONTHLY)){
error.rejectValue("RECURRENCE STATUS", "422", "The recurrence status must be one of these: " + RecurrenceStatus.ALLSTATUS);
}
}
答案 0 :(得分:1)
当您查看rejectValue(java.lang.String field, java.lang.String errorCode, java.lang.String defaultMessage)
的签名时,您会看到第一个参数是field
。它指的是Jobs
类中的字段。
我不认为您field
="当前状态"的当前值那样做!
您应该将其更改为Jobs类的引用字段。
查看Spring错误documentation。