遇到的问题是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>
下面是我的配置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>
解决方案 »
- Java程序事务与MYSQL存储过程事务的嵌套混用问题
- 求教,如何修改源码做成jar包
- 深夜小弟在线等 关于一个 sql查询问题
- 怎么将html中的下拉框的数据保存到xml 中?
- 关于xml语言的一个小问题
- 在log4j中怎么让日志文件存放在相对路径中?
- 关于smartUpload上传文件问题,耗费资源
- 请问JDBC连接SQLSERVER怎么样才能只返回第一行,第一列!
- 调用webservice时有如下错误:No deserializer defined for array type
- ssh的项目,修改代码或者properties如何可以不重新编译
- 在线等!sorting(‘132554769980’) 传回 ‘012345567899’
- 文件上传的问题~
不要意思,一开始是用decode的,后来只是想查看返回的字符串而已,所以就把decode去掉了
可是提示的错误是response.responseText未定义,所以不关那个事
没有什么办法解决吗?难道我用了ajax就要放弃struts不成- -!
改成 return null;
试试看我之前在struts1里面 有用使用Ajax action跳转后 就无法接受到json字符串了
我是这么做的
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;
在sturts lib文件夹下