4

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

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

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

4

1 回答 1

8

它的工作方式与显式完全相同Validator- 您声明 aMessageSource.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>
于 2010-11-25T22:16:56.100 回答