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

我的设置有些不同。我正在我的requestMapping中使用@valid注释,而我的@Valid类则使用@notnull等。我已经看到了一些人在@notnull @notnull的示例(message =“ blablabla”);但这也是硬编码的,我想将消息放在属性文件中,以便我可以轻松地即时编辑它,因此我可以在将来轻松实现I18N。

关于如何实现这一目标的任何输入将不胜感激。

有帮助吗?

解决方案

它的工作方式与显式完全相同 Validator - 你 声明 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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top