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