如何在自定义Webflow 验证器类中连接Spring?我有一个实现和工作的验证器:
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配置存在某种问题,但我无法隔离它。
发布于 2014-01-07 21:13:05
问题解决了-我错过了一步。为了使用属性包,您需要使用MessageResolver并按如下方式调用它:
MessageResolver messageResolver = new MessageBuilder().error().source(source).code("validation.message.property.here").defaultText(errorMessage).build();
messageResolver.resolveMessage(messageSource, Locale.ENGLISH);
return messageResolver;其中,您的messageSource是在应用程序上下文中定义的带有消息属性包的Spring:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
<value>ValidationMessages</value>
</list>
</property>
</bean>关于MessageResolver的文档是这里。
发布于 2014-01-07 21:00:09
我的理解是,当使用JSR-303风格的注释时,ValidationMessages.properties是用于定制消息的。因为这里不使用这些,而是使用自定义验证器方法并直接调用errors.rejectValue,所以应该将消息放在标准的messages.properties文件中。在webflow中,该文件是特定于流的,并且与流定义XML文件同时存在于同一个文件夹中。
https://stackoverflow.com/questions/20978454
复制相似问题