使用ValidationMessages.properties对java bean验证进行国际化

时间:2014-11-20 08:32:24

标签: java validation internationalization hibernate-validator

如何使java bean验证国际化?

在国际化之前,我有(类似的)以下验证错误消息:

email is not a valid email address (was some-nonexistant-user[at]invalid.email)

根据:https://docs.oracle.com/javaee/6/tutorial/doc/gkahi.html,可以创建ValidationMessages.properties文件以使文本国际化

例如,如果我添加内容(为了演示目的将其保留在英语中,尽管这应该是另一种语言)

org.hibernate.validator.constraints.Email.message=is invalid email format

现在,这会产生以下验证错误:

email is invalid email format (was some-nonexistant-user[at]invalid.email)

所以这似乎只能让我控制文本的一小部分,但我如何自定义例如was部分?并且可以完全控制整个文本?类似的东西:

{property} is invalid (data = {value})

而不是给我输出

email is invalid (data = some-nonexistant-user[at]invalid.email)

1 个答案:

答案 0 :(得分:1)

如果您无法通过本地化的属性文件执行所需操作,则可能需要创建自己的MessageInterpolator。

请参阅http://beanvalidation.org/1.0/spec/#validationapi-message

上的第4.3.2节