spring加freemarker的中文问题解决~~~
在java的世界中中文问题真的是很让人头疼~~我这几天在学习spring+freemarker的框架组合开发,这两天间间断断的在边写边学,目的是熟悉spring这个大的体系框架。当然了,其核心IOC和AOP是着重要看的。而且最近自己在设计的一个权限系统也是基于spring的MVC框架的,而视图层则选用freemarker。今天在配置freemarker使用的时候,发现在客户端上的中文总是显示乱码。后来试者使用spring的BeanNameViewResolver来做viewResolver,然后自己写一个实现View接口的实例来做视图解析,发现这样来做打印在控制台的输出没有中文乱码,而输出到页面上的却有中文乱码问题。这样就想是不是contentType的设置问题呢?然后我就使用FF来进行测试,同时通过LiveHTTPheaders工具来查看返回的数据流的相关头信息,却发现它的contentType是设置为:text/html;charset=ISO-8859-1。这一看就知道是什么问题了,呵呵,是因为头没有设置正确,应该设置为:charset=gb2312或是GBK这样才可以。问题是找到了,那就好解决了,在bean的定义文件中做如下修改设置:
<bean id="syspurview_viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html;charset=gb2312"></property>
</bean>
注意到上面的红色部分,我们设置FreeMarkerViewResolver的contentType属性为text/html;charset=gb2312即可解决中文的乱码问题!好了,问题也就算解决了,happy~~~
这里说这么多,无非也就是把整个问题的解决过程和思路给大家说说,相信对大家在以后遇到类似的问题的时候也可以试着自己解决这样的问题。当然了,我也尝试希望从网上获得解答,可网上搜索了大半天也没有发现这样的解决方案,主要是spring+freemarker的很少,就算是有的,也都是用英文来做的测试,没有这样的MVC体系的使用。所以这里写出来希望给大家一个参考~~~
这个星期主要研究的就是spring(包括IOC+MVC)了,然后配合freemarker来实现系统的MVC,过几天把最近的研究心得和大家分享下,呵呵~~~

浙公网安备 33010602011771号