5

我对 JSR303 和特殊的 Hibernate-Validator 有疑问。

我想从属性文件中读取验证消息。此属性文件位于部署到 servlet 容器的 war 文件中。问题是,它没有被访问。我有以下项目结构。

  • 项目网络(战争文件)
    • project-web-core(project-web.war 的 WEB-INF/lib 中的 jar 文件)
      • hibernate-validator jars(project-web-core 的 maven 依赖项)
      • ValidationMessages.properties(在 project-web-core.jar 的 src/main/resources 中;访问这个)
    • ValidationMessages.properties(在 project-web.war 的 src/main/resources 中;这个没有被访问)

如何访问 ValidationMessages.properties?或者这是不可能的?

除此之外,如果 Hibernate-Validator 首先在战争中读取属性文件,如果找不到密钥,然后从 jar 中读取属性文件等等,那将是完美的。

4

1 回答 1

7

不可能有多个ValidationMessages.properties文件。但是您可以使用 Hibernate Validators AggregateResourceBundleLocator从具有不同名称的包中检索消息,如下所示:

ValidatorFactory validatorFactory = configuration
    .messageInterpolator(
        new ResourceBundleMessageInterpolator(
            new AggregateResourceBundleLocator(
                Arrays.asList("foo", "bar"), 
                configuration.getDefaultResourceBundleLocator())))
    .buildDefaultValidatorFactory();
于 2012-07-30T18:50:56.777 回答