当前位置: 首页 > 知识库问答 >
问题:

使用ValidationMessages捆绑与Spring Webflow验证?

微生善
2023-03-14

如何在自定义Webflow验证器类中连接Spring ValidationMessages捆绑包?我已经实现并运行了一个验证器:

public void validateBusinessReferences(BusinessReferencesViewDao businessReferences, Errors errors) {
    if (somecondition())) {
        errors.rejectValue("name", "validation.message123", "This field is bad.");
    }
}

但是我得到的不是ValidationMessages.properties文件中的消息,而是这个字段是坏的。

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

共有2个答案

须峰
2023-03-14

问题解决了——我错过了一步。为了使用属性包,您需要使用MessageResolver,并像这样调用它:

MessageResolver messageResolver = new MessageBuilder().error().source(source).code("validation.message.property.here").defaultText(errorMessage).build();
messageResolver.resolveMessage(messageSource, Locale.ENGLISH);
return messageResolver;

其中,messageSource是Springbean,包含在应用程序上下文中定义的消息属性包:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames">
        <list>
            <value>messages</value>
            <value>ValidationMessages</value>
        </list>
    </property>
</bean>

MessageResolver上的文档在这里。

裴威
2023-03-14

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

 类似资料:
  • 但程序没有启动。它显示了一个会立即消失的小对话框(看起来是空白的,但它消失得太快了,以至于我没有真正注意到它)。

  • 我创建了一个Java应用程序,它使用运行库执行Python脚本。我想知道是否有一种方法可以将Python.exe和必需的库包含在Jar文件中?

  • 我对一个难以捉摸但可能非常强大的DropWizard特性Bundles感到好奇。根据文件: Dropwizard捆绑包是一组可重用的功能,用于定义应用程序的行为块。 鉴于DropWizard(DW)的文档非常丰富,我感到震惊的是,这实际上是对bundle的唯一解释。我在野外看到了一些这样的例子: 资产组合 但我不明白的是:bundle似乎只是在jar中进行代码打包和分发。那么,为什么我不能编写“原

  • 我目前正在创建一个时间线卡片,方式如下: 这将在时间线中创建一张活卡。我尝试添加另一个相同的标签,以为它会把他们捆绑在一起,最近的将是捆绑封面卡,但它没有做到这一点。 我看了一下文档,我能找到的只是如何使用镜像API来实现它。那么有没有一种方法可以使用GDK创建捆绑卡呢?还是只有通过镜像API才可用?多谢了。

  • 我最近不得不考虑一个新的软件的部署方法,它是用以下代码编写的: 雀巢6/Express 该软件将部署在160多台服务器上,分布在整个欧洲,其中一些服务器的互联网连接非常糟糕。 我做了一些研究,很多人明确建议不要捆绑销售。主要的论点是本机扩展将失败与捆绑器,如或(剧透:这是真的,但有一个解决方案)。在我看来,这在很大程度上是由于人们不关心这个事实:的作者在这个用例中使用了几乎相同的词。所以通常,我被

  • 问题内容: 编辑:Symfony最佳做法回答了我的大部分问题。 关于我的Symfony2应用程序,我有几个问题。 它将有一个前端和一个后端,并且它们将使用一些通用代码(例如日期显示器,分页器,一些经常使用的模板等)。 因此,我创建了一个FrontendBundle和一个BackendBundle,它们分别包含各自的布局。第一个问题:为前端和后端创建捆绑包(这是甚至没有控制器的“通用”捆绑包)的优良