Ext FormPanel submit 提交success 与Ext.Ajax.request提交的success 区别

来源:互联网 发布:暗黑破坏神3 数据库 编辑:程序博客网 时间:2024/05/01 08:19
一、Ext.Ajax.request提交的例子:
failure Ext.get('bt1').on('click', function(e) {  Ext.MessageBox.confirm('重要操作', '你确认吗?。',button1); }); var button1 = function(btn) {  if (btn == 'yes') {   Ext.Ajax.request({      url : 'GetDataAction.do?action=test,      method : 'post',      params : {       month : vmonth      },      success : function(form, action) {       var obj = Ext.util.JSON.decode(form.responseText);       if(obj.success==true){        Ext.MessageBox.alert("提示", "成功执行!");       }else{        Ext.Msg.alert("错误",obj.errors);       }             },      failure : function(form, action) {               Ext.MessageBox.alert("执行失败", "与后台联系时出现问题!");       }     });  } }
后台java脚本:
if(!dao.valid()){//操作业务成功}else{response.getWriter().println("{'success':false,'errors':'业务发生错误!'};}return;

二、submit 提交的例子

var fp = new Ext.form.FormPanel({items:{xtype:'textfield'},buttons: [{    text: '提交',    formBind: true,             handler: function(){    if(fp.getForm().isValid()){         fp.getForm().submit({    Ext.Ajax.request({                url: 'GetDataAction.do?action=test',                waitMsg: '正在提交...',                success: function(form, action){                    // server responded with success = true                    //var result = action.result;                Ext.MessageBox.alert("提示", "成功执行");                },                failure: function(form, action){                    if (action.failureType === Ext.form.Action.CONNECT_FAILURE) {                        Ext.Msg.alert('连接错误',                            'Status:'+action.response.status+': '+                            action.response.statusText);                    }                    if (action.failureType === Ext.form.Action.SERVER_INVALID){                        // server responded with success = false                        Ext.Msg.alert('业务错误', '业务信息发生了错误');                    }                }            });        //}    }},{    text: 'Reset',    handler: function(){        fp.getForm().reset();    }}]})fp.render('divtest2');

例子2来源Extjs文档。

三、根据两个例子看出:

1、Ext.Ajax.request提交,不能验证“Ext.form.Action.SERVER_INVALID”的值,所有返回都是成功。

2、如果要在submit()返回failure中信息显示:Ext.Msg.alert('错误', action.result.msg);需要后台返回的json字符串中带有errors,如:

response.getWriter().write("{'success':false,errors:'错误','msg':'msg中的信息'}");

暂时想到这里……

参考文章:
http://blog.csdn.net/wayfoon322/archive/2008/12/12/3503118.aspx

原创粉丝点击