Spring Validator在POST上抛出NotReadablePropertyException

时间:2018-03-22 14:59:31

标签: spring spring-validator

我正在尝试使用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);
    }
}

1 个答案:

答案 0 :(得分:1)

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

我不认为您field ="当前状态"的当前值那样做!

您应该将其更改为Jobs类的引用字段。

查看Spring错误documentation