Spring freemarker页面乱码解决

本文介绍了解决Spring框架结合Freemarker模板引擎出现中文乱码的方法。通过调整Freemarker配置、在HTML头部加入字符集声明及在web.xml中配置统一编码过滤器来彻底解决乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在开发过程中遇到乱码十分的头痛,如果你在开发过程中也遇到了乱码,本文或许对你有些帮助。

乱码场景:

      项目采用Spring框架,视图层使用freemarker,当点击某个链接时redirect到某个Action作些业务逻辑处理,然后再重定向到一个html页面,但是重定向到html页面时,html里面的中文全部变成乱码,在web.xml加过滤器,html、java编码都按UTF-8写还是不起作用,偶尔发现在Action里,加这句话可使页面恢复正常

  response.setContentType("text/html;charset=utf-8");

如果每个Action都这样写很是繁琐,修改freemarker配置加入描红的代码

 

<bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
  <property name="requestContextAttribute" value="rc"/>
    <property name="prefix" value=""/>
  <property name="suffix" value=".html"/>
  <property name="cache">
     <value>false</value>
  </property>
  <property name="contentType" value="text/html" />
  <property name="exposeSpringMacroHelpers" value="true"/>
    <property name="viewClass">
        <value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
    </property>
 </bean> 

 

在html头文件中加入<meta http-equiv="content-type" content="text/html; charset=UTF-8">然后在web.xml再配置下过滤器,将所有编码都统一,这样它就甭想再乱码了

 

 <filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>
   org.springframework.web.filter.CharacterEncodingFilter
  </filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
  <init-param>
   <param-name>forceEncoding</param-name>
   <param-value>true</param-value>
  </init-param>
 </filter>
 <filter-mapping>
        <filter-name>encodingFilter</filter-name>    
        <url-pattern>/*</url-pattern>
    </filter-mapping>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值