Spring validation中自定义的校验错误提示信息如何支持国际化
Spring validation的基本使用可以参考这个链接:点击进入
这一章将讲述如何让自定义的校验提示信息支持国际化,在这里我只列举了支持中文、英文 具体的实现步骤,过程如下:
(1)将message消息从注解中迁移至配置文件
在resources目录下创建ValidationMessages.properties文件,文件名必须保持一致;将@NotEmpty(message = "身份证号不能为空")的message消息放置在资源文件中,如下所示:
@NotEmpty(message = "{NotEmpty.personProfileDo.id}") private String id;
ValidationMessages.properties文件内容如下:
NotEmpty.personProfileDo.id = 身份证号不能为空
说明:建议给资源文件中的key命名时采用“注解名称.类名.字段名”的形式,注解名称、类名、字段名之间采用点号隔开。
如果只是想支持某一种语言,并且将message的内容从注解中解脱出来,放置在资源配置文件中方便管理,那么上述这样处理就可以了。
(2)支持中、英文双语提示
在resources目录下创建ValidationMessages_zh.properties(或者ValidationMessages_zh_CN.properties)、ValidationMessages_en.properties(或者ValidationMessages_en_US.properties),同时可以将ValidationMessages.properties文件删除。
ValidationMessages_zh.properties(或ValidationMessages_zh_CN.properties)文件内容如下:
NotEmpty.personProfileDo.id = 身份证号不能为空
ValidationMessages_en.properties(或ValidationMessages_en_US.properties)文件内容如下:
NotEmpty.personProfileDo.id = the ID should be not empty
(3)测试结果
在中文条件下发起的请求,效果如下:
在英文条件下发起的请求,效果如下:
从上面的两幅图可知,已经现实了校验提示信息支持中英文了。