表单提交成功了 但Ext总是调用 failure

javagongcheng 2011-03-11 05:11:35
不知道是哪里错了 前辈多指教

Ejb里的代码:

//表单提交..
modifyRcsrForm.getForm().submit({
waitMsg : '正在修改个人客户 - 日常收入信息,请稍后......',
success : function(form, action) {//成功
Ext.MessageBox.alert('提示','修改个人客户 - 日常收入信息成功!',function(){
modifyRcsrWindow.hide();
modifyRcsrForm.getForm().reset();
modifyRcsrForm.getForm().setValues({flag:'2'});
rcsrInfoStore.load({params : { start : 0, limit : 20 }});
});
},
failure : function(form, action) {//失败
Ext.MessageBox.alert('警告', '修改个人客户 - 日常收入信息失败! ' + action.info );
}
});


后台java代码:
返回的是 success:true 可是页面调用的还是 failure
action.info 这个好象也获得不到..

if(currencyBuf == null){
log.info("修改个人客户 - 日常收入信息失败,currencyBuf返回值为空!: " + flag );
//失败返回的值
out.print("{failure:true,info:'修改个人客户 - 日常收入信息失败:未知的错误信息!'}");
} else {
result = currencyBuf.getResult();
if(result == PubData.Succ){
log.info("修改个人客户 - 日常收入信息成功: " + flag );
//成功返回的值 已经返回成功了 但是页面上总是转到 failure
out.print("{success:true,info:'修改个人客户 - 日常收入信息成功!'}");
} else {
if(currencyBuf.getAddword() == null){
log.error("修改个人客户 - 日常收入信息失败,currencyBuf.getAddword()值为空!: " + flag );
//失败返回的值
out.print("{failure:true,info:'修改个人客户 - 日常收入信息失败:未知的错误信息!'}");
} else {
log.error("修改个人客户 - 日常收入信息失败!: " + flag + currencyBuf.getAddword());
//失败返回的值
out.print("{failure:true,info:'修改个人客户 - 日常收入信息失败! " + currencyBuf.getAddword() + "'}");
}
}
}

return null;
...全文
611 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
qhjqwj 2012-10-06
  • 打赏
  • 举报
回复
建议你用out.println试试看,再不行就是里面的那串格式不对
qhjqwj 2012-10-06
  • 打赏
  • 举报
回复
Extjs提交到后台的时候,总是执行failure()方法,原因是,后台返回的格式不对
javagongcheng 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 haoduosegui 的回复:]
我也有同样的问题
我用的是strut2
和extjs3
可以成功但是它就是跳转到failure去
[/Quote]

http://blog.sina.com.cn/s/blog_6a98783b0100q4rw.html
去看一下这个 希望能帮到你 ..
haoduosegui 2011-11-16
  • 打赏
  • 举报
回复
我也有同样的问题
我用的是strut2
和extjs3
可以成功但是它就是跳转到failure去
javagongcheng 2011-03-15
  • 打赏
  • 举报
回复
问题解决了
一身大汗啊 呵呵
谢谢各位前辈

是因为在后台java代码中的最后面
那个return null;之前..
多out.println()了一样东西
javagongcheng 2011-03-14
  • 打赏
  • 举报
回复
有没有人啊.. 太崩溃了..
javagongcheng 2011-03-14
  • 打赏
  • 举报
回复
而且功能都实现了
但是返回到 Ext 就是失败
现在又发现一个问题
功能实现了
但是在网页上报错
说ext-all.js 第7942行 缺少 ')'
javagongcheng 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 shuixiya1999 的回复:]
引用 2 楼 javagongcheng 的回复:

引用 1 楼 sohighthesky 的回复:
失败时应该是用

JScript code
action.result.info

还有失败时应该输入success:false吧?


我是说 后台成功了
out.print("{success:true,info:'修改个人客户 - 日常收入信息成功!'}");
调……
[/Quote]

我确定成功了 我用断点调试的
但是 Ext 我就不会调试了
以前辈的经验 一般哪里错了 会发生这样的状况呢?
汉尼拔 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 javagongcheng 的回复:]

引用 1 楼 sohighthesky 的回复:
失败时应该是用

JScript code
action.result.info

还有失败时应该输入success:false吧?


我是说 后台成功了
out.print("{success:true,info:'修改个人客户 - 日常收入信息成功!'}");
调用了这句
但是在ExtJs中 还是调用了failu……
[/Quote]

你确定你后台成功了????

这个问题我觉得你明显后台没有成功
javagongcheng 2011-03-14
  • 打赏
  • 举报
回复
晕 为什么没人?
dataminer_2007 2011-03-14
  • 打赏
  • 举报
回复

out.print("[{success:true,info:'修改个人客户 - 日常收入信息成功!'}]");

info 中文再改成英文试试
另外,建议还是用 JSON 包进行转换,不然传递复杂对象的List 或者其他的东西你自己拼装,会很容易出错也不好查找错误
javagongcheng 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 purple3196 的回复:]
你在js上输出传过来的字符串,发上来看看
还有把你引用的一些代码发上来
js的报错没有规律,可能是别的地方有错误关联的,你也可以安装httpwatchpro,自己调试一下
[/Quote]

怎么在js上输出传过来的字符串?
我实在是真心求教 可是我对Ext不熟
不知道应该从哪里下手
javagongcheng 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kk3k2005 的回复:]
先吧输出的JSON字符串中的中文 换成 英文字母 在试验下
[/Quote]

有可能是因为表单里有中文
因为在调试的时候 出现了
Source not found for ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse)
那个中文出现在表单中的下拉列表 必须使用中文啊
response.setContentType("application/xml;charset=UTF-8"); 这句也不管用..
对了 还有在jsp页面中 用的是 GB18030 这个字符集 也用GBK
但是为什么到数据库里的时候就是好好的呢..
要怎么调整字符集呢?
purple3196 2011-03-14
  • 打赏
  • 举报
回复
你在js上输出传过来的字符串,发上来看看
还有把你引用的一些代码发上来
js的报错没有规律,可能是别的地方有错误关联的,你也可以安装httpwatchpro,自己调试一下
KK3K2005 2011-03-14
  • 打赏
  • 举报
回复
另外在预知状态下后台一般只返回执行状态的码 一般是一个数字

比如修改成功 就返回 {success:true}

前台拿到成功状态 输出什么提示信息 则让前台来考虑 后台就负责实际操作和返回状态码
KK3K2005 2011-03-14
  • 打赏
  • 举报
回复
先吧输出的JSON字符串中的中文 换成 英文字母 在试验下
javagongcheng 2011-03-13
  • 打赏
  • 举报
回复
没人能回答我的问题么?
还是代码不全?
javagongcheng 2011-03-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sohighthesky 的回复:]
失败时应该是用

JScript code
action.result.info

还有失败时应该输入success:false吧?
[/Quote]

我是说 后台成功了
out.print("{success:true,info:'修改个人客户 - 日常收入信息成功!'}");
调用了这句
但是在ExtJs中 还是调用了failure(失败)
sohighthesky 2011-03-11
  • 打赏
  • 举报
回复
失败时应该是用
action.result.info 

还有失败时应该输入success:false吧?

87,922

社区成员

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

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