【问题标题】:SpringMVC Annotation Validation - DataBinding data typeSpringMVC 注解验证 - DataBinding 数据类型
【发布时间】:2012-08-27 08:07:50
【问题描述】:

在这种情况下使用自定义验证时:

if(officer.getBadgeId() == 0){

        errors.rejectValue("badgeId", "badgeId.required");
}

如果 POJO/Model 官员的 badgeId 数据类型为 int,是否可以将字符串设置为属性的错误消息?或者在进行验证并将错误消息返回到视图时,属性的数据类型并不重要。

如果这是一个问题,您如何处理这种情况或从自定义验证向用户返回错误消息

【问题讨论】:

    标签: java spring-mvc validation spring-annotations


    【解决方案1】:

    错误消息的类型仅为String

    void rejectValue(String field, String errorCode, String 默认消息)
    使用给定的错误描述拒绝当前对象的给定字段。

    Spring doc link.

    【讨论】:

    • 你的意思是rejectValue(String field, String errorCode)我认为
    • @Ajinkya 是的,我想知道 errorCode 是 String 类型,它是否会以某种方式影响 int 类型的类属性类型并引发错误
    • @dev_darin:错误消息将是字符串类型,无论它属于什么类型的字段。
    【解决方案2】:

    这是来自:http://alasdoo.com/2011/07/data-validation-conversion-basics-custom-error-messages-in-spring-mvc/的示例

    if (user.getBirthYear()!=null)
                if ( user.getBirthYear() <MINI_YEAR || user.getBirthYear() >MAX_YEAR)
                    e.rejectValue( "birthYear", "user.birthYear.outOfInterval");
        }
    

    在这里,您可以看到作为日期类型的birthYear 返回了一条存储在 message.properties 文件中的 String 类型的错误消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-30
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多