这两日搞了一下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);
}
});
分享到:
相关推荐
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....
2. **表单提交**:当用户选择好文件后,可以通过`Ext.Ajax.request`或者`Ext.form.Basic.submit`方法将表单数据发送到服务器。表单数据会封装在一个FormData对象中,方便Struts2处理。 3. **Struts2配置**:在...
form.getForm().on('submit', function(form, event) { event.preventDefault(); var fileInput = form.findField('uploadFile').getEl().dom; var file = fileInput.files[0]; // 构建POST数据 var formData ...
formPanel.getForm().submit({ url: 'upload.php', // 服务器端处理文件上传的脚本 method: 'POST', success: function(form, action) { Ext.Msg.alert('成功', '文件已成功上传'); }, failure: function...
form1.getForm().submit({ waitMsg: '正在上传...', url: "Upload.action", method: "POST", success: function(form, action) { Ext.Msg.alert('成功', action.result.message); document.location.href = '...
在实际项目中,你还需要考虑更多细节,比如错误处理、安全措施(如防止SQL注入和XSS攻击)、以及前后端的通信协议(JSON、XML等)。对于初学者来说,这是一个很好的起点,通过实践这个例子,可以更好地理解客户端与...
- 使用`Ext.form.action.Submit`和`Ext.form.action.Load`类,可以定制化提交和加载数据的行为,比如处理JSON或XML响应,或者进行错误处理。 3. **示例代码分析**: - 在提供的示例中,可能包含了各种表单验证的...
form.action = '../../AutoReportServlet'; form.target = '_blank'; // 打开新窗口或标签页 form.submit(); ``` 这里`Ext.encode(sendRecord)`将数组转换为JSON字符串,`value`属性的格式是按照内部JSON解析工具的...
form.submit({ url: 'attachmentSave', success: function(form, action) { console.log('File uploaded successfully.'); }, failure: function(form, action) { console.log('Failed to upload file.'); ...
- 配置`struts.xml`文件,其中`extends="json-default"`表示使用JSON默认插件进行响应数据的处理。 ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//...
2. **处理响应**:Struts2将返回JSON或XML格式的结果,ExtJS可以解析这些响应,根据返回的状态(成功或失败)更新UI。 **五、错误处理与反馈** 1. **错误显示**:如果登录失败,Struts2会将错误信息返回给前端,...