ext问题

问题描述

ext请求checkNewPassword方法之后,将参数传给java代码,无论返回的是成功还是失败都不执行最后failure:function(resp,opts)这段代码!EXT代码Ext.Ajax.request({url:Global_Path+'/portal/person/user.do?method=checkNewPassword',method:'post',params:{comfirmPassword:userPwdNew,comfirmrtUser:userID,comfirmrtchangepwd:changepwd},success:function(resp,opts){/*varbackStr=opts.result;alert(backStr);*/Ext.Ajax.request({url:Global_Path+'/logonpwd.do?method=userpasswordmodfy',method:'post',params:{userID:userID,oldpassword:userPwdOld,newpassword:userPwdNew},success:function(respp,optss){Ext.Msg.alert('提示','新密码修改成功!',function(){window.location.href=Global_Path+'/login.jsp';});},failure:function(respp,optss){varbackval=eval('('+respp.responseText+')');vartext=backval.text;Ext.Msg.alert('提示','密码修改失败!');}});},failure:function(resp,opts){varbackStr=resp.responseText;//varbackStrww=Ext.util.JSON.decode(req.responseText)/*alert(backStr);*/Ext.Msg.alert('提示','密码修改失败!!!');window.location.href=Global_Path+'/login.jsp';}});};});java代码if(msg.equals("成功")){try{response.getWriter().print("{success:true,info:{}}");}catch(IOExceptione){e.printStackTrace();//TochangebodyofcatchstatementuseFile|Settings|FileTemplates.}//this.sendSuccessMsg(response,"修改成功","0007");returnnull;}if(!msg.equals("成功")){try{//request.setAttribute("msg",msg);response.getWriter().print("{success:false,error:{}}");response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);}catch(IOExceptione){e.printStackTrace();//TochangebodyofcatchstatementuseFile|Settings|FileTemplates.}//this.sendFailMsg(response,msg,"0001");returnnull;}}

解决方案

解决方案二:
failure是在ajax请求失败的时候才调用的,即使你后台错误,只要ajax与后台交互了就不会failure。你可以设置返回值,举个例子。返回success为成功,返回failure为失败,那么在ajax请求成功的事件——即success事件中通过这个返回值来判断。当然,如果请求失败,即触发failure事件,那么肯定也是修改失败的。
解决方案三:
LZ正解,一般在success中通过返回值来判断后台发生的事情,failure一般是比如服务器突然挂了没请求道后台才调用。。。
解决方案四:
把url中的方法名换一个不存在的试下
解决方案五:
不会也呵呵
解决方案六:
该回复于2011-02-14 10:13:47被版主删除
解决方案七:
引用1楼likeajin的回复:

failure是在ajax请求失败的时候才调用的,即使你后台错误,只要ajax与后台交互了就不会failure。你可以设置返回值,举个例子。返回success为成功,返回failure为失败,那么在ajax请求成功的事件——即success事件中通过这个返回值来判断。当然,如果请求失败,即触发failure事件,那么肯定也是修改失败的。

能不能说的详细点呢?我现在是这样如果后台判断不成功response.getWriter().print("{success:false,errors:{}}");是这样返回的!
解决方案八:
failure是后台抛出异常时才会触发的
解决方案九:
你后台返回格式是:response.getWriter().print("{success:false,errors:{}}");那么JS中就需要在success中判断result的值是否为truesuccess:function(result,request){varresponseArray=Ext.util.JSON.decode(result.responseText);result=responseArray.success;...}当然如果是采用表单提交,是不会出现你说的问题的,如果后台抛异常,它会执行failure里面的语句

时间: 2024-09-16 08:43:07

ext问题的相关文章

ext/js-Ext/js主从表数据在一个界面展示的问题

问题描述 Ext/js主从表数据在一个界面展示的问题 类似于一个订单列表,每行后面有一个查看详情的按钮,现在是点击查看详情,展示了主表数据,怎么样才能在点击查看详情的时候,除了展示当前订单记录行的信息,还要展示这一条订单关联的多条订单明细信息呢?在一个界面,跟在订单信息后面展示? 解决方案 可以用Ext.ux.RowExpander这个插件,具体示例看examplesgridgrid-plugins.html

ExtJs2.0学习系列(14)--Ext.TreePanel之第三式(可增删改的树)

继续tree的learn! 今天就来个可增删改的树吧,操作数据库就使用比较方便的Linq,无非就是增删改! LinqData.dbml: html代码: <body> <div id="container" style="float:left; margin-right:10px;"> </div> <iframe name="mainFrame" id="mainFrame" src

ExtJs2.0学习系列(7)--Ext.FormPanel之第四式(其他组件示例篇)

N久没有写extjs的,作为一个新手,我为我的这种懒惰行为感到惭愧! 鉴于有朋友反应前面的文章过于简单,我决定以后的文章如果没有闪光点就放在新手区(如果不适合,请跟帖),不放在首页! 11.checkbox简单示例 效果图: js代码: Ext.onReady(function(){ Ext.QuickTips.init(); var myform=new Ext.FormPanel({ frame:true, width:330, layout:"form", labelWidth:

ExtJs2.0学习系列(10)--Ext.TabPanel之第二式

上一篇种我们简单的了解了下tabpanel 下面我们要介绍的是,如何动态的添加标签页! 2.动态添加tabpanel的标签页 效果图: 点击"添加新标签页",会添加一个标签页,而且激活这个新的标签页. html代码: <body style="margin:10px;"> <div> <a id="AddNewTab" href="javascript:void(0)">添加新标签页<

ext下拉框在linux系统下,输入框有XX的关闭

问题描述 ext下拉框在linux系统下,输入框有XX的关闭 如果所示,在linux系统,可输入的下拉框有XX的按钮,但是本地却没有,不知道这个该怎么设置,现在的问题是,linux系统上点那个XX没有效果,点击为空后,鼠标放到别的地方时,当时选得值又出现了,有没有人知道这个梗.

ExtJs2.0学习系列(2)--Ext.Panel

上一篇文章ExtJs2.0学习系列(1)--Ext.MessageBox ,受到了大家的褒贬不一,还是有的朋友提出好的建议,在此表示感谢! 今天介绍extjs中的Panel组件. //html代码 <div id="container"> </div> //js代码 var p = new Ext.Panel({ title: 'My Panel',//标题 collapsible:true,//右上角上的那个收缩按钮,设为false则不显示 renderTo:

ExtJs之Ext.widgets-Button,SplitButton,CycleButton

Ext.Action action实现一个脱离了容器的事件,所有它可以在多个容器之间共享,不过好象只有Ext.Toolbar, Ext.Button 和 Ext.menu.Menu支持action接口:),因为容器要实现下面所有的方法setText(string), setIconCls(string), setDisabled(boolean), setVisible(boolean) and setHandler(function) 方法: Action( Object config ) 构

ExtJs2.0学习系列(6)--Ext.FormPanel之第三式(ComboBox篇)

前言:说句实话,此extjs系列的文章在博客园中的热度不高,可能是学这玩意的人不多吧,但是我觉得有这么个系列的文章对于中国朋友非常有帮助!请大家支持! 上篇ExtJs2.0学习系列(5)--Ext.FormPanel之第二式中我们讨论了下fieldset和表单验证的知识,今天我们接着深入解析表单元素中ComboBox组件的使用.会涉及 到.net简单服务器数据交互,但暂不做深入讨论,以后会详细分析服务器交互相关,不过可能要等较长一段时间,呵呵! 5.服务器数据作为ComboBox的数据源实例 首

ExtJs2.0学习系列(11)--Ext.XTemplate

XTemplate是Extjs里面的模板组件. 下面我们看个最简单的例子. 效果图: js代码: Ext.onReady(function(){ //数据源 var data={ name:"博客园", read:[{ book:'<<道不远人>>', date:'2007-7-7' },{ book:"<<大话设计模式>>", date:"2006-6-6" }] } //呈现组件 var myp

extjs-Extjs Ext.ux.form.LovCombo 多选问题,求大牛帮忙啊!

问题描述 Extjs Ext.ux.form.LovCombo 多选问题,求大牛帮忙啊! 当选择的时候,离开焦点到空白的时候, 多选下拉框会把所有相同名字都显示出来, 这个问题怎么解决........ 附代码 this.billComboBox = new Ext.ux.form.LovCombo({ store : this.billStore, emptyText : '请选择', name : 'billName', allowBlank : false, mode : 'local',