extjs 接收不到返回值

zhangweiwindow 2010-11-26 10:29:07
结构: ExtJs + S2SH
struts.xml配置:
<package name="default" namespace="/" extends="struts-default">

<global-results>
<result name="jsonResult">/jsonResult.jsp</result>
</global-results>

<action name="login" class="com.oa.action.LoginAction"></action>
<action name="addUser" class="com.oa.action.UserAction" method="addUser"></action>

</package>

上面的jsonResult.jsp是专门用来返回 json数据的页面。已经证实jsonResult.jsp页面上输出的数据为{success:true,data:{msg:'000'}}。

这是jsonResult.jsp页面的代码:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<s:property value="jsonString" escape="false" />

ExtJs的代码:
userForm.getForm().submit({
url:'addUser',
method:'POST',
success:function(form, action){
Ext.Msg.alert('OK', action.data.msg);
},
failure:function(form, action){
Ext.Msg.alert('OK', action.data.msg);
}
});

以上配置可以成功地将数据发送到服务器,但就是ExtJs的success不执行,请教一下这有可能是哪的问题?
...全文
425 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljlkebi 2011-06-22
  • 打赏
  • 举报
回复
我也遇到同样问题。参考一下
hejian3232 2011-05-02
  • 打赏
  • 举报
回复
我也遇到同样问题。参考一下。
leehuat 2010-11-26
  • 打赏
  • 举报
回复

都没有执行,
可能你的代码是提交到后台了
但是返回的时候没有到该页面

res = ServletActionContext.getResponse();
req = ServletActionContext.getRequest() ;
res.setCharacterEncoding("UTF-8");
res.setContentType( "text/html;charset=UTF-8");


String msg = "{success: true,msg:" ;
String id = req.getParameter("id") ;
String sql = " delete from sys_user " ;

String wh = " where id= '"+id+"'";

boolean result = roleMange.deleteRole(sql, wh);

if(result) {
msg += "'删除成功'}";
} else {
msg += "'删除失败'}";
}

PrintWriter out = res.getWriter() ;
out.write(msg);

return null;
zhangweiwindow 2010-11-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 leehuat 的回复:]

CSS code

userForm.getForm().submit?
这在哪里提交的。
failure执行了吗 ?
[/Quote]

刚才回的代码贴错了,function()部分的代码应该是:
function addUser(){
userForm.getForm().submit({
url: 'addUser ',
method: 'POST ',
success:function(form, action){
Ext.Msg.alert( 'OK ', action.data.msg);
},
failure:function(form, action){
Ext.Msg.alert( 'OK ', action.data.msg);
}
});
}
zhangweiwindow 2010-11-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 leehuat 的回复:]

CSS code

userForm.getForm().submit?
这在哪里提交的。
failure执行了吗 ?
[/Quote]

都没执行,就是返回{success:failure,...},failure也不执行。以下是js部分的主要代码:
var userWindow = new Ext.Window( {
id : 'userWindow',
title : '用户信息',
collapsible : false,
maximizable : false,
closable : false,
width : 400,
height : 350,
minWidth : 300,
minHeight : 150,
layout : 'fit',
plain : true,
bodyStyle : 'padding:5px;',
buttonAlign : 'center',
items : userForm,
buttons : [ {
id : 'btn_submit',
text : '确定',
handler:addUser
}, {
id : 'btn_reset',
text : '取消',
handler:hideUserWindow
} ]
});

//添加用户
function addUser(){
userForm.getForm().submit({
//clientValidation:true,
//waitMsg:'正在提交...',
//waitTitle:'正在提交',
//url:'addUser',
url:'getAllUser',
method:'POST',
success:function(form, action){
Ext.Msg.alert('OK', action.data.msg);
},
failure:function(form, action){
Ext.Msg.alert('OK', action.data.msg);
}
});
}
leehuat 2010-11-26
  • 打赏
  • 举报
回复

userForm.getForm().submit?
这在哪里提交的。
failure执行了吗 ?

zhangweiwindow 2010-11-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 leehuat 的回复:]

CSS code

userForm.getForm().submit?
这在哪里提交的。
failure执行了吗 ?
[/Quote]

找着问题了,可能是我的js代码写的有问题,写成Ext.Msg.alert('ok', 'ok')就可以执行,所以这一部分有问题。
谢谢。没有功劳也有苦劳,结贴给分。
zhangweiwindow 2010-11-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 leehuat 的回复:]

CSS code

都没有执行,
可能你的代码是提交到后台了
但是返回的时候没有到该页面

res = ServletActionContext.getResponse();
req = ServletActionContext.getRequest() ;
res.setCharacterEncoding("UTF-8");
res.set……
[/Quote]

按你的方法写不行。我的页面跳转到了 jsonResult.jsp,在这个页面中我是这样写的:
<%
java.io.PrintWriter printWriter = org.apache.struts2.ServletActionContext.getResponse().getWriter();
org.apache.struts2.ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
printWriter.write(org.apache.struts2.ServletActionContext.getRequest().getAttribute("jsonString").toString());

printWriter.close();

其中的 jsonString = {success:false,data:{msg:'001'}} 或 {success:true,data:{msg:'000'}}。但是 ExtJs还是没返应
%>

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧