SpringMVC+HibernateValidator,读取在properties文件中的错误提示信息为乱码

本文介绍如何解决SpringMVC应用中因国际化配置不当导致的校验错误信息乱码问题。通过调整properties文件和springmvc.xml配置,确保错误信息能够正确显示。
1. properties文件中的校验错误提交信息:
      
 items.name.length.error=请输入1到30个字符的商品名称
 items.createtime.isNull=请输入商品的生产日期

2. springmvc.xml中的配置为:

<!-- 资源文件编码格式 -->
<property name="fileEncodings" value="utf-8"/>
<!-- 对资源文件内容缓存时间,单位秒 -->
<property name="cacheSeconds" value="120" />
3. Java代码

if (bindingResult.hasErrors()) {
	List<ObjectError> allErrors  = bindingResult.getAllErrors();
	for (ObjectError objectError : allErrors ) {
		System.out.println(new String(objectError.getDefaultMessage().getBytes("ISO-8859-1"),"utf-8"));
		System.out.println(objectError.getDefaultMessage());
		}
	//.....
}
4. 输出结果
请输入1到30个字符的商品名称
请输入1到30个字符的商品名称
5. 分析:上述结果表明,读取到的properties文件里的信息ISO-8859-1格式信息,在xml文件中的fileEncodings配置未起作用。如果在Java代码中一直使用编码格式转换(new String(objectError.getDefaultMessage().getBytes("ISO-8859-1"),"utf-8"))十分不便。

6. 解决:在xml文件中再加上以下的编码配置,就万事大吉了。

<property name="defaultEncoding" value="UTF-8"/>
7. 测试结果

???1?30????????
请输入1到30个字符的商品名称

8. 参考:http://blog.youkuaiyun.com/stloven5/article/details/53312012


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值