首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ValidationMessages包与Spring验证结合使用?

将ValidationMessages包与Spring验证结合使用?
EN

Stack Overflow用户
提问于 2014-01-07 17:52:12
回答 2查看 861关注 0票数 1

如何在自定义Webflow 验证器类中连接Spring?我有一个实现和工作的验证器:

代码语言:javascript
复制
public void validateBusinessReferences(BusinessReferencesViewDao businessReferences, Errors errors) {
    if (somecondition())) {
        errors.rejectValue("name", "validation.message123", "This field is bad.");
    }
}

但是,我得到的不是来自ValidationMessages.properties文件的消息,而是This field is bad.的后备默认值。

我的所有其他消息和验证都正常工作--只是这个自定义验证器/自定义消息场景失败了。我怀疑Spring配置存在某种问题,但我无法隔离它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-07 21:13:05

问题解决了-我错过了一步。为了使用属性包,您需要使用MessageResolver并按如下方式调用它:

代码语言:javascript
复制
MessageResolver messageResolver = new MessageBuilder().error().source(source).code("validation.message.property.here").defaultText(errorMessage).build();
messageResolver.resolveMessage(messageSource, Locale.ENGLISH);
return messageResolver;

其中,您的messageSource是在应用程序上下文中定义的带有消息属性包的Spring:

代码语言:javascript
复制
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames">
        <list>
            <value>messages</value>
            <value>ValidationMessages</value>
        </list>
    </property>
</bean>

关于MessageResolver的文档是这里

票数 0
EN

Stack Overflow用户

发布于 2014-01-07 21:00:09

我的理解是,当使用JSR-303风格的注释时,ValidationMessages.properties是用于定制消息的。因为这里不使用这些,而是使用自定义验证器方法并直接调用errors.rejectValue,所以应该将消息放在标准的messages.properties文件中。在webflow中,该文件是特定于流的,并且与流定义XML文件同时存在于同一个文件夹中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20978454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档