最近项目需要做一个中英文支持的网页,之前做过,但是没有从头搭建过。开始以为很简单。直接就在网上搜了搜,找到一个Spring的。于是就直接copy代码。之中遇到一些问题。
原文章如下:我就不粘贴内容了。
http://www.xdemo.org/spring-i18n/
遇到的第一个问题就是配置以后显示的所有中文字符都是乱码。
当时就直接查看properties文件的编码方式,直接修改成utf-8了。然后还是乱码,并没有任何改善。
然后想了想,应该是spring读取属性文件的时候没有设置编码。
查看了一下源码,发现AbstractResourceBasedMessageSource 类有setDefaultEncoding方法,于是:按照下面配置。
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages/message</value>
</property>
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
</bean>
刷新了一下,问题解决了。
然后手动输入链接,想修改一下语言,怎么也不成功。很郁闷,没道理啊。
最后去掉了redirect跳转,使用直接跳转。
return
new
ModelAndView(
"redirect:/"
);
发现语言可以转换了,但是刷新页面以后又回到中文了。打开浏览器查看cookie,确实记录了语言信息。然后就没有头绪了。
最后发现,因为我直接访问的index.jsp,并没有经过controller进行跳转,可能是没有经过spring servlet,所以spring没有读取propertes文件,最后添加了一个controller,然后跳转到index.jsp页面,问题解决了。:)