遇到的问题是response.responseText为undefine
下面是我的配置PersonAction.javapublic class PersonAction extends ActionSupport implements ServletResponseAware { private HttpServletResponse response;

public String execute() {
try {
PrintWriter pw = response.getWriter();
pw.println("{name:'kotomi', age:'17'}");
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
return SUCCESS;
} public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
}
struts.xml<struts>
    <package name="default" namespace="/" extends="struts-default">
     <action name="person" class="com.ajax.action.PersonAction">
     <result name="success">/person.jsp</result>
     </action>
    </package>
</struts>
jsp
其中用到了extjs框架,以下这段代码用servlet来做的话是没有问题的,换成struts后就不行了<script type="text/javascript">
Ext.onReady(function(){
Ext.fly("action").on("click", function(){
Ext.Ajax.request({
url : "<%=basePath%>person",
method : "post",
success : function(response, opts) {
var obj = response.responseText;
alert(obj.name);
}
});
});
});
</script>

解决方案 »

  1.   

    好像先要把接收到的字符串转换成json才能obj.name这样用吧
      

  2.   

    那你用servlet好了,struts2的action那样写貌似真不好使,struts1是可以的饿
      

  3.   


    不要意思,一开始是用decode的,后来只是想查看返回的字符串而已,所以就把decode去掉了
    可是提示的错误是response.responseText未定义,所以不关那个事
      

  4.   


    没有什么办法解决吗?难道我用了ajax就要放弃struts不成- -!
      

  5.   

    return SUCCESS;
    改成 return null;
    试试看我之前在struts1里面 有用使用Ajax action跳转后 就无法接受到json字符串了
      

  6.   

    首先说明一下,struts2 与 AJax 结合比 struts1 好用
    我是这么做的
    action 中定义一个类 page 里面有一个属性 private Object data;page = new Page();
    Student s = new Student();
    s.setName(..);
    s.setAge(..);
    page.setData(s)struts.xml<package name="json" extends="json-default">
    <action name="person" class="com.ajax.action.PersonAction">
        <result name="success" type="json">
           <param name="root">page</param>
        </result>
    </action>如果你调试用的是firefox的话,在响应中就可以看到后台传过来的值
    var _name= action.result.data.name;
      

  7.   

    result的type有json的类型的吗?
      

  8.   

    有的,并且必须是extends="json-default"
      

  9.   

    需要加入包 struts2-json-plugin-2.1.8.jar
    在sturts lib文件夹下