Ajax+Struts2出现乱码问题解决

jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>处理Json页面</title>
    <script type="text/javascript" src="/ddzj/js/jquery-1.4.2.js"></script>
    <script type="text/javascript">
        function jsont(){
            var name=$("#name").val();
            alert(name);
            $.ajax({
                type:'post',
                url:'/ddzj/survey/ajaxJson',
                dataType:'text',
                data:"name="+name,
                success:function(msg){
                    alert(msg);
                    }
                });
        }
    </script>
  </head>
  
  <body>
      <input type="text" onblur="jsont()" name="name" id="name"/>
  </body>
</html>
后台:
处理Ajax页面
package com.yiqiao.ddzj.train.action;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.StrutsStatics;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.Result;

public class JsonDeal implements Result {
    public void execute(ActionInvocation invocation) throws Exception {
        System.out.println("进入 jsonDeal...");
        ActionContext cxt = invocation.getInvocationContext();
        HttpServletResponse response = (HttpServletResponse) cxt
                .get(StrutsStatics.HTTP_RESPONSE);
        HttpServletRequest request=(HttpServletRequest)cxt.get(StrutsStatics.HTTP_REQUEST);
        response.setContentType("text/xml;charset=utf-8");  
        response.setHeader("Cache-Control", "no-cache");  
        PrintWriter out = response.getWriter();
        String nameString=(String) request.getAttribute("name");
        System.err.println("Requset:"+request.getAttribute("name"));
        System.err.println("list:"+request.getAttribute("list"));
        out.write(nameString);
    }
}


处理action:

package com.yiqiao.ddzj.train.action;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class TestJsonAction extends ActionSupport {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    List list;
    public List getList() {
        return list;
    }
    public void setList(List list) {
        this.list = list;
    }
    public String testJson(){
        System.err.println("进入testJsonAction,name="+name);
        list=new ArrayList();
        list.add("aaa");
        list.add("佳佳");
        return "ajax";
    }
}


配置文件:

<!-- 自动以ajax处理类型 -->
     <result-types>
            <result-type name="ajaxResult" class="com.yiqiao.ddzj.train.action.JsonDeal"></result-type>
        </result-types>
        
        
       
        <action name="ajaxJson" class="com.yiqiao.ddzj.train.action.TestJsonAction" method="testJson">
            <result name="ajax" type="ajaxResult"></result>
            <result>/jsonTest.jsp</result>
        </action>

posted @ 2013-05-14 22:42  记录博客  阅读(211)  评论(0编辑  收藏  举报