Ext中Form组件提交后台的3种方式

1,利用表单的原生方式提交,以下:(须要本身调用form.isValid()函数来校验表单参数格式)
      1.x中:
  form.el.dom.action="../excel.do";
  form.el.dom.target="_blank";
  form.el.dom.submit();

        浏览器在新窗口打开../excel.do,并传递表单参数,
 一样这里的../excel.do能够用servlet,jsp等替换。浏览器

     2.x中
  form.getForm().getEl().dom.actiong="../excel.do";
  form.getForm().getEl().dom.target="_blank";
  form.getForm().getEl().dom.submit();
服务器

   2,利用Ext表单的默认提交  (不须要本身校验,form.submit();函数中会本身校验,可是须要写失败函数或者失败事件,用来提示用户校验失败)
     1.x  form.submit();
     2.x  form.getForm().submit();
     若是form控件定义了URL,那么这两个提交将会请求这个URL而且传递form的参数。其底层实现是Ajax请求。
     若是form控件没有定义 URL,那么这2个submit函数能够传递参数,相似以下:
     Form.submit({url:'confManager/newConfTask.do',waitMsg:'保存数据',waitTitle:"请等候。。。",params{p1:p1,p2:p2},success:sFn,failure:fFn});
     请求会把form控件中的参数和这里submit函数中的参数一同发送到后台。
     因为这种方式存在回调函数和触发事件。
所以若是调用成功会执行sFn这个函数,失败会执行fFn这个函数。    
研究form提交源代码,发现若是定义了actioncomplete,actionfailed.那么根据表单提交的实际状况会触发不一样的事件。
     具体说明:
     若是调用到了后台,而且返回成功结果。那么若是定义了success:sFn则先执行sFn,若是定义了actioncomplete,则接着触发actioncomplete对应的事件
     若是调用到了后台,而且返回成功失败。那么若是定义了failure:fFn则先执行fFn,若是定义了actionfailed,则接着触发actionfailed对应的事件dom

     至于返回结果何为成功,何为失败,能够本身对源码扩展,增长成功失败的判断规则。
补充:jsp

定义表单提交失败的触发事件
Form.on('actionfailed',formReqFail);函数

 

function formReqFail(f,a){
 if(a.failureType == Ext.form.Action.CLIENT_INVALID)
   Ext.MessageBox.alert('错误', '本地校验错误');
 else if (a.failureType == Ext.form.Action.SERVER_INVALID)
   Ext.MessageBox.alert('错误', '服务器校验错误');
 else if (a.failureType == Ext.form.Action.CONNECT_FAILURE)
   Ext.MessageBox.alert('错误', '链接错误或超时');
 else if (a.failureType == Ext.form.Action.LOAD_FAILURE)
   Ext.MessageBox.alert('错误', 'load 数据错误');
 }
url

   3,利用Ajax方式提交,(须要本身调用form.isValid()函数来校验表单参数格式)
      直接利用:
      Ext.lib.Ajax.request({
      method :'POST',//提交方式
      url :'excel.jsp',//提交的URL,能够是servlet,*.do,*.action等
      params:{p1:p1,p2:p2},//提交的参数,后台能够经过request.getParameter("p1");得到参数
      success :sFn,//当请求成功时调用的方法
      failure :fFn,//请求失败时调用的方法
      callback :cFn,//当收到HTTP响应时调用的方法。无论请求成功仍是失败,回调方法都会被调用
      form :'excelForm'//form>表单 元素或者<form>的id ,能够从其中获取参数 
});
spa

      根据Ext的Api自行决定须要哪些配置项。excel

相关文章
相关标签/搜索