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

使用Spring ressource包和Hibernate验证器

焦驰
2023-03-14

这是我的设置(集中在我的问题涉及的组件上。我还使用MyBatis,JUnit...):

  • Tomcat 8.0.14
  • Spring 4.1.1
  • 泽西2.13
  • 球衣-Spring3 2.13
  • jersey-bean-validation
  • Hibernate验证器5.0.0.final

Bean属性验证和类级验证工作良好。现在我正在尝试设置自定义错误验证消息。

在我的applicationcontext.xml中,我定义了:

<bean name="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="validationMessageSource">
        <ref bean="messageSource" />
    </property>
</bean>

<bean name="messageSource"
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="configuration/messages/validation" />
</bean>

我还创建了带有一些属性的/web-inf/classes/configuration/messages/validation_fr_fr.properties:

model.error=Modèle invalide

现在,当我尝试验证Bean时,我会在日志中看到以下内容:

15:47:14,300 DEBUG http-nio-8080-exec-2 resourceloading.PlatformResourceBundleLocator:72 - ValidationMessages not found.
15:47:45,707 DEBUG http-nio-8080-exec-2 resourceloading.PlatformResourceBundleLocator:69 - org.hibernate.validator.ValidationMessages found.
{model.error} (path = EventServiceAPIImpl.createOrUpdateEvent.arg0, invalidValue = fr.bz.pdcv.bean.Event@d99af88)

{model.error}未替换为我得自定义消息.

我认为我的ReloadableResourceBundleMessageSource被Hibernate验证器默认配置覆盖。但为什么?

我重载google和stackoverflow来寻找解决方案,我没有找到任何可以帮助我的东西

谢谢你!

共有1个答案

归鹤龄
2023-03-14

虽然我想我迟到了,但这可能对别人有帮助。

使用validationmessages.properties文件重命名您的validation_fr_fr.properties,并将其放在'src\main\resources'文件夹中。

所以您的最终路径将如下所示:

重新启动服务器并尝试呈现验证。

不再需要LocalValidatorFactoryBean和ResourceBundleMessageSource

Hibernate基本上在默认目录中查找相同的文件名,并覆盖默认的ValidationMessages.properties

 类似资料:
  • 首先,我是Vaadin7的新手。当我发现BeanFieldGroup.class时,我正在尝试一些vaadin演示。正如我所看到的,这个类将一个字段绑定到一个bean属性。在bean中,使用验证约束注释对属性进行注释(JSR303)。在本例中,我的pom.xml包含hibernate验证器依赖项: 我创建了validationmessage.properties文件,并在其中放了一些消息(带有匈牙

  • 现在,我正在用Spring MVC开发一个web应用程序。 样品值可以是“0.05”、“1.00”、“12.55”等。 因此,如果有任何办法来解决这个问题,请点亮我。谢了。

  • 问题内容: 问题已经解决了这里,但没有工作,我(不相同的弹簧引导版本我猜)本 尝试编写自定义约束验证器代码,以在保留之前检查帐户电子邮件是否存在。 // ------------------------------------------------ -------------------------- // --------------------------------------------

  • 问题已经在这里解决了,但对我不起作用(我猜不是同一个Spring启动版本) 尝试编写自定义约束验证器,在持久化之前检查帐户电子邮件是否存在。 // -------------------------------------------------------------------------- // ------------------------------------------------

  • 我正在使用Spring Boot 2.2.0用java bean验证框架构建一个restful服务。Hibernate-Validator在幕后使用。验证工作得很好,但在一个字段与约束不匹配后会引发异常。我想先验证所有字段,然后给消费者一个包含所有错误的响应。这可能吗?

  • 我需要应用一个双值验证,这需要与圆周率匹配。我正在考虑使用@pattern(regex=“3.14159265359”)。这是使用Hibernate验证约束应用这样一个约束的最佳方式吗?谢谢