2012-07-30 72 views
3

我在JSR303和特殊的Hibernate-Validator中遇到了问题。从类路径中读取多个ValidationMessages.properties

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

  • 项目网站(war文件)
    • 项目网络核心
      • 休眠验证器罐(在项目web.war中的WEB-INF/lib下的jar文件)(Maven的依赖项目的web核
      • ValidationMessages.properties(在SRC /主/资源的)项目的Web-core.jar添加;这一个被访问)
    • ValidationMessages.properties(在SRC /主/资源投影叔web.war中;这一个访问)

我怎样才能访问这两个ValidationMessages.properties?或者这是不可能的?

除此之外,如果Hibernate-Validator首先读取战争中的属性文件,并且如果它找不到密钥,那么从jar中读取属性文件等等。

回答

4

不可能有多个ValidationMessages.properties文件。但是你可以使用Hibernate校验AggregateResourceBundleLocator从像这样不同的名字捆绑检索消息:

ValidatorFactory validatorFactory = configuration 
    .messageInterpolator(
     new ResourceBundleMessageInterpolator(
      new AggregateResourceBundleLocator(
       Arrays.asList("foo", "bar"), 
       configuration.getDefaultResourceBundleLocator()))) 
    .buildDefaultValidatorFactory(); 
+0

贡纳尔您好,感谢您的回答,但我仍然有一个认识问题。我想使用hibernate注释进行验证。这怎么可能与上述mentoined验证工厂 – lofthouses 2012-08-01 12:35:31

+0

基本上你从工厂检索'javax.validator.Validator',它提供了几种验证对象的方法。您可以查看Hibernate验证器参考指南(http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html/validator-gettingstarted.html),以获取Bean验证入门。 – Gunnar 2012-08-01 18:50:00