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

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.csdn.net/stloven5/article/details/53312012


发布了37 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/SkyFire1121/article/details/79110742