【问题标题】:spring validation with @valid where/how custom error messages使用@valid 进行春季验证 where/how 自定义错误消息
【发布时间】:2010-11-25 22:08:01
【问题描述】:

我正在尝试对属性文件中的错误消息进行一些弹簧验证。 但我发现的所有示例似乎都有硬编码的值,或者从属性文件中获取但使用验证器类并在那里检索它。

我的设置有点不同。 我在我的请求映射中使用@Valid 注释,我的@Valid 类使用@NotNull 等。 我见过一些人们这样做的例子 @NotNull(message = "blablabla"); 但这也是硬编码的,我想将消息放在一个属性文件中,这样我就可以轻松地动态编辑它,这样我将来就可以轻松地实现 i18n。

我们将不胜感激任何有关如何实现这一目标的意见。

【问题讨论】:

    标签: spring validation hibernate-validator


    【解决方案1】:

    它的工作方式与显式 Validator 完全相同 - 你 declare a MessageSource 并在 .properties 文件中写入错误消息。消息代码形成为constraintName.modelAttributeName.propertyName

    publib class Foo {
        @NotNull private String name;
        ...
    }
    

    .

    @RequestMapping
    public String submitFoo(@Valid Foo foo, ...) { ... }
    

    messages.properties:

    NotNull.foo.name=...
    

    MessageSource 声明:

    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value = "messages" />
    </bean>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2016-04-18
      相关资源
      最近更新 更多