Spring 验证器在 POST 上抛出 NotReadablePropertyException

Spring Validator throws NotReadablePropertyException on POST

我正在尝试使用 Spring 验证程序验证对象和 return 有意义的响应消息。

我想让它检查给定的 String 只能是 5 个特定值的条件。

相反发生的是,我得到一个 NotReadablePropertyException 抛出并且 return 基本上没有..

我做错了什么?

@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);
    }
}

当您查看 rejectValue(java.lang.String field, java.lang.String errorCode, java.lang.String defaultMessage) 的签名时,您可以看到第一个参数是 field。它指的是您 Jobs class 中的一个字段。

我不认为你当前的 field = "RECURRENCE STATUS" 值能做到这一点!

您应该将其更改为您工作的引用字段 class。

检查 Spring 个错误 documentation