Spring 4 Hibernate 验证器本地化消息

Joh*_*ohn 4 validation spring localization spring-mvc

我尝试使用自定义休眠消息进行本地化,但无法使其正常工作。我经过验证的类如下所示:

@Entity
@Table(name = "USERS")
public class UserEntity extends AbstractBaseEntity implements UserDetails {

    @NotNull
    @Column(unique = true, nullable = false)
    @Size(min = 5, max = 30)
    private String username;
Run Code Online (Sandbox Code Playgroud)

这是我的弹簧配置的一部分:

<!-- Localization of hibernate messages during validation!-->
<bean id="validationMessageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:validation" />
</bean>

<bean name="validator"  class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="validationMessageSource">
        <ref bean="validationMessageSource"/>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

在资源中,我有两个验证文件:validation_en.properties 和 validation_pl.properties 下面是示例条目:

NotNull.UserEntity.username=Username can't be empty!
Run Code Online (Sandbox Code Playgroud)

当我显示验证错误时,我看到标准消息“可能不为空”,而不是我的自定义和本地化消息。我做错了什么?在此先感谢您的帮助,最好的问候

Mr.*_*. P 5

你需要做的是 @NotNull(message = "{error.username.required}")

@Entity
@Table(name = "USERS")
public class UserEntity extends AbstractBaseEntity implements UserDetails {

@NotNull(message = "{error.username.required}")
@Column(unique = true, nullable = false)
@Size(min = 5, max = 30)
private String username;
Run Code Online (Sandbox Code Playgroud)

validation_en.properties资源文件夹的属性文件中

error.username.required=Username can't be empty!
Run Code Online (Sandbox Code Playgroud)

在弹簧配置中:

<mvc:annotation-driven validator="validator">
</mvc:annotation-driven>

 <!-- Localization of hibernate messages during validation!-->
 <bean id="validationMessageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:validation" />
 </bean>

 <bean name="validator"  class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="validationMessageSource">
        <ref bean="validationMessageSource"/>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

如果这对您不起作用,也请发表评论。所以我可以进一步帮助你。