如何将另一个属性文件中的值注入ValidationMessages.properties?

时间:2015-01-29 22:18:50

标签: java spring hibernate hibernate-validator properties-file

我需要更改hibernate-validator使用的@NotNull消息。

使用ValidationMessages.properties中的一行成功完成了此操作,例如:javax.validation.constraints.NotNull.message=my validation message

但是,这并不是什么需要。将遗漏有关原因的详细信息,但所有这些消息都应来自单个messages.properties文件,其目的不仅是验证,还包括其他消息。

我们说messages.properties最初包含一个属性CCCI_0001=my generic message。是否有可能以某种方式将messages.properties中的此属性值替换为ValidationMessages.properties中的占位符?

1 个答案:

答案 0 :(得分:2)

您可以做的是使用自定义ValidatorFactory引导您的MessageInterpolator。如果您乐意使用Hibernate Validator特定功能,可以使用ResourceBundleLocator - 请参阅http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-custom-message-interpolation。看起来有点像这样:

Validator validator = Validation.byDefaultProvider()
        .configure()
        .messageInterpolator(
                new ResourceBundleMessageInterpolator(
                        new PlatformResourceBundleLocator( "MyMessages" )
                )
        )
        .buildValidatorFactory()
        .getValidator();