使用Tiles模板JSP出现部分中文乱码

  
开发环境: JDK1.5+JBuilder2006+Struts1.3.5+Tomcat6

问题描述:使用Tiles模板JSP出现部分中文乱码

问题现象:页面的Body部分从Bean中获取中文字符串,但显示为问号,而页面中其他非Bean中获取的中文(即直接写在JSP中的中文)能正常显示。Tiles模板文件中已经设置了<%@ page contentType="text/html; charset=GBK"%>。尝试以下几种方法解决,但都未能奏效:

Body文件中也加入<%@ page contentType="text/html; charset=GBK"%>,反而使Body页面中的中文全部变为问号,但是在此种情况下不使用Tiles模板,而是单独显示Body部分的JSP文件,Body部分的所有中文又都能正常显示;

在页面中对Bean中获取的字符串重新进行GBK字符集编码,但还是显示为问号。

创建MyActionServlet继承ActionServlet,覆盖process方法,设置response.setContentType("text/html; charset=GBK"),结果使得页面的所有部分的中文都为乱码;

问题原因:不了解

解决方法:

创建MyActionServlet继承ActionServlet,覆盖process方法

public class MyActionServlet extends ActionServlet {

……

    protected void process(HttpServletRequest request,

                           HttpServletResponse response) throws IOException,

            ServletException {

        request.setCharacterEncoding("GBK");

        response.setContentType("text/html; charset=GBK");

        super.process(request, response);

    }

……

}

配置web.xml文件

……

<servlet>

    <servlet-name>action</servlet-name>

    <servlet-class>webapp. MyActionServlet</servlet-class>

<init-param>

……

在需要显示中文的JSP文件中都加入<%@ page contentType="text/html; charset=GBK"%>

struts-config.xmlTiles的配置文件(如tiles-defs.xml)的<?xml version="1.0" encoding="ISO-8859-1" ?>中的ISO-8859-1改为GBK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值