我正在尝试使用属性文件中的错误消息进行一些弹簧验证。 但是我发现的示例似乎都是硬编码的值,或者从属性文件中获取但是使用验证器类并在那里检索它。
我的设置有点不同。 我在请求映射中使用@Valid注释,而我的@Valid类使用@NotNull等。 我见过人们做@NotNull的一些例子(message =“blablabla”); 但这也是硬编码的,我想把这些消息放在一个属性文件中,这样我就可以轻松地编辑它,所以我可以在将来轻松实现i18n。
如何实现这一点的任何意见将不胜感激。
答案 0 :(得分:8)
它的工作方式与显式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>