使用ValidationMessages.properties实现java bean验证的国际化
如何国际化JavaBean验证 在国际化之前,我有(类似)以下验证错误消息:使用ValidationMessages.properties实现java bean验证的国际化,java,validation,internationalization,hibernate-validator,Java,Validation,Internationalization,Hibernate Validator,如何国际化JavaBean验证 在国际化之前,我有(类似)以下验证错误消息: 电子邮件不是有效的电子邮件地址(某个不存在的用户[at]无效。电子邮件) 根据:可以创建ValidationMessages.properties文件来国际化文本 例如,如果我添加了内容(将其保留为英语以用于说明,这应该是另一种语言) org.hibernate.validator.constraints.Email.message=是无效的电子邮件格式 现在,这将创建以下验证错误: 电子邮件是无效的电子邮件格式(某个
电子邮件不是有效的电子邮件地址(某个不存在的用户[at]无效。电子邮件)
根据:可以创建ValidationMessages.properties文件来国际化文本
例如,如果我添加了内容(将其保留为英语以用于说明,这应该是另一种语言)
org.hibernate.validator.constraints.Email.message=是无效的电子邮件格式
现在,这将创建以下验证错误:
电子邮件是无效的电子邮件格式(某个不存在的用户[at]无效.email)
因此,这似乎只给了我一小部分文本的控制权,但我如何定制例如was
部分?并且可以完全控制整个文本?比如:
{property}无效(数据={value})
这会给我
电子邮件无效(data=某个不存在的用户[at]invalid.email)
如果您无法通过本地化属性文件执行所需操作,则可能需要创建自己的MessageInterpolator
请参见第4.3.2节的,换言之,如果不使用您自己的MessageInterpolator,就无法进一步定制消息?是的,根据我的阅读,似乎就是这样。基本上有一个默认的插值器,它只为你做这么多。更复杂的事情由你决定。。但也许有人把一些开源的东西放在那里供你使用。我没查过。您可以做的另一件事是将containtViolation对象与失败的值匹配,并向消息中添加一些内容。换句话说,对消息进行后期处理。我以前做过,恐怕您需要创建一个包装的
MessageInterpolator
。