【问题标题】:Hibernate validator doesn't use properties file.Hibernate 验证器不使用属性文件。
【发布时间】:2013-10-24 14:10:50
【问题描述】:

我已经实现了一个带有休眠和休眠验证的 bean。这是我正在测试的领域。

@NotBlank(message ="test.test" )
private String test;

我有一个文件

messages.properties

 messages_en.properties

我使用的。 Spring.message 标签起作用,因此可以找到文件并在系统其他地方使用。当我尝试在messages.properties中存储该字段为空而不是错误消息的对象时,我得到“test.test”作为我的验证错误。我错过了什么?

【问题讨论】:

    标签: java hibernate internationalization hibernate-validator


    【解决方案1】:

    您应该尝试用花括号将键名括起来。此语法与本地化文件中的 Java 不同。紧随其后的是 Spring/Hibernate Validation thru Validation API。

    @NotBlank(message="{test.test}") private String test;

    【讨论】:

    • 谢谢。但后来它改用那个字符串。
    【解决方案2】:

    问题是我的配置中缺少这个。 message="{test.test}" 也是必要的。

    <mvc:annotation-driven validator="validator" />   
    
    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
        <property name="messageInterpolator">
            <bean class="org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator">
                <constructor-arg index="0">
                    <bean
                        class="org.springframework.validation.beanvalidation.MessageSourceResourceBundleLocator">
                        <constructor-arg index="0" ref="messageSource" />
                    </bean>
                </constructor-arg>
            </bean>
        </property>
    </bean>
    

    【讨论】:

      【解决方案3】:

      只有以下对我有用:

      1. 在 maven 项目的“resources”目录中创建 ValidationMessages.properties,使用以下消息属性:

        app.validation.notempty.msg=must be populated
        
      2. 然后,在 dto 类中:

        @NotEmpty(message = "{app.validation.notempty.msg}")
        private String fieldName;
        
      3. 最终验证如下图。请注意我发现提供者 HibernateValidator.class 是强制性的才能从 .properties 文件中获取值。

        ValidatorFactory factory = Validation.byProvider( 
        HibernateValidator.class )
                .configure()
                .buildValidatorFactory();
        Validator validator = factory.getValidator();
        

      希望这对某人有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-01
        • 1970-01-01
        • 2017-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多