`
liguiking
  • 浏览: 30758 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类

为Ext.form.Action.Submit增加JSON/xml数据发送

阅读更多
这两日搞了一下Ext3,发现Ext.form.FormPanel居然不能发送JSON/xml数据到服务端,不知道是不是我没有找到方法,郁闷了一天。
最简单的办法就是,直接重写Ext.form.Action.Submit.run
在request参数中配置有
jsonData或者xmlData就可以将json或者xml发送到服务端了
Ext.override(Ext.form.Action.Submit,{
	run:function(){	
		 var o = this.options,
	     method = this.getMethod(),
	     isGet = method == 'GET';
		 if(o.clientValidation === false || this.form.isValid()){
		     if (o.submitEmptyText === false) {
		         var fields = this.form.items,
		             emptyFields = [];
		         fields.each(function(f) {
		             if (f.el.getValue() == f.emptyText) {
		                 emptyFields.push(f);
		                 f.el.dom.value = "";
		             }
		         });
		     }
		     
		     if(o.jsonData){
			     Ext.Ajax.request(Ext.apply(this.createCallback(o), {		         
			         url:this.getUrl(isGet),
			         method: method,
			         headers: o.headers,
			         jsonData:o.jsonData
			     }));	    	 
		     }else if(o.xmlData){
			     Ext.Ajax.request(Ext.apply(this.createCallback(o), {		         
			         url:this.getUrl(isGet),
			         method: method,
			         headers: o.headers,
			         xmlData:o.xmlData
			     }));	    	 
		     }else{
			     Ext.Ajax.request(Ext.apply(this.createCallback(o), {
			         form:this.form.el.dom,
			         url:this.getUrl(isGet),
			         method: method,
			         headers: o.headers,
			         params:!isGet ? this.getParams() : null,
			         isUpload: this.form.fileUpload
			     }));	    	 
		     }
	
		     if (o.submitEmptyText === false) {
		         Ext.each(emptyFields, function(f) {
		             if (f.applyEmptyText) {
		                 f.applyEmptyText();
		             }
		         });
		     }
		 }else if (o.clientValidation !== false){ // client validation failed
		     this.failureType = Ext.form.Action.CLIENT_INVALID;
		     this.form.afterAction(this, false);
		 }
	}  return Ext.decode(response.responseText);
    }
});
分享到:
评论

相关推荐

    Ext Js权威指南(.zip.001

    7.3.2 数据的转换过程:ext.data.reader.xml、ext.data.reader.json和ext.data.reader.array / 315 7.3.3 reader对象的配置项 / 321 7.3.4 格式化提交数据:ext.data.writer.writer、ext.data.writer.json和ext....

    Ext+Struts2多文件上传

    2. **表单提交**:当用户选择好文件后,可以通过`Ext.Ajax.request`或者`Ext.form.Basic.submit`方法将表单数据发送到服务器。表单数据会封装在一个FormData对象中,方便Struts2处理。 3. **Struts2配置**:在...

    EXTjs 文件上传(可用)

    form.getForm().on('submit', function(form, event) { event.preventDefault(); var fileInput = form.findField('uploadFile').getEl().dom; var file = fileInput.files[0]; // 构建POST数据 var formData ...

    Extjs2.x 实现文件上传组件

    formPanel.getForm().submit({ url: 'upload.php', // 服务器端处理文件上传的脚本 method: 'POST', success: function(form, action) { Ext.Msg.alert('成功', '文件已成功上传'); }, failure: function...

    SSH2上传实现

    form1.getForm().submit({ waitMsg: '正在上传...', url: "Upload.action", method: "POST", success: function(form, action) { Ext.Msg.alert('成功', action.result.message); document.location.href = '...

    ExtJs做的用户登陆!ASP后台

    在实际项目中,你还需要考虑更多细节,比如错误处理、安全措施(如防止SQL注入和XSS攻击)、以及前后端的通信协议(JSON、XML等)。对于初学者来说,这是一个很好的起点,通过实践这个例子,可以更好地理解客户端与...

    Extjs页面验证(修订版)

    - 使用`Ext.form.action.Submit`和`Ext.form.action.Load`类,可以定制化提交和加载数据的行为,比如处理JSON或XML响应,或者进行错误处理。 3. **示例代码分析**: - 在提供的示例中,可能包含了各种表单验证的...

    highcharts-图表导出到word 代码.docx

    form.action = '../../AutoReportServlet'; form.target = '_blank'; // 打开新窗口或标签页 form.submit(); ``` 这里`Ext.encode(sendRecord)`将数组转换为JSON字符串,`value`属性的格式是按照内部JSON解析工具的...

    struts2+extjs中File的upload&download;&delete;例子及说明

    form.submit({ url: 'attachmentSave', success: function(form, action) { console.log('File uploaded successfully.'); }, failure: function(form, action) { console.log('Failed to upload file.'); ...

    stuts2和extjs结合实例

    - 配置`struts.xml`文件,其中`extends="json-default"`表示使用JSON默认插件进行响应数据的处理。 ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//...

    Extjs4--Form登录功能,结合struts2

    2. **处理响应**:Struts2将返回JSON或XML格式的结果,ExtJS可以解析这些响应,根据返回的状态(成功或失败)更新UI。 **五、错误处理与反馈** 1. **错误显示**:如果登录失败,Struts2会将错误信息返回给前端,...

Global site tag (gtag.js) - Google Analytics