用SpringMVC整合 FreeMarker中文乱码解决方案

from: http://blog.sina.com.cn/s/blog_60e0026d0100fql3.html

在用SpringMVC结合FreeMarker写一个程序,在编码的时候我所有的页面contentType都设置成UTF-8了,并且项目的整体编码也是UTF-8,但是freemarker模板显示的时候还是出现了中文乱码,google了一圈,都是给FreeMarkerView的contentType属性设置为text/html;charset=UTF-8就解决了问题,其实不然,这样做并没有解决问题,没招!下了Freemarker源码看看吧,发现freemarker的Configurartion中有默认的编码为ISO-8859-1,感觉这个应该是问题所在,看看Spring中freemarker视图解析器发现有个freemarkerSettings属性来设置freemarker中的Configuration相关数据,于是做如下配置:  

<beanid="freemakerCongfig"
   class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
      <propertyname="templateLoaderPath">
          <value>/WEB-INF/web/</value>
      </property>
      <propertyname="freemarkerSettings">
      <props>
      <propkey="defaultEncoding">UTF-8</prop>
      </props>
      </property>
   </bean>
接着同样配置一下视图解析器的contentType属性为text/html;charset=UTF-8,启动tomcat,运行,乱码消失,晕,google出来的东西差不多都是同一篇,根本就没有讲到关键点!自己动手,丰衣足食!
 
文章系erikchang所有,转载注明出处!

相关推荐