Ext.form.Action.Submit.handleResponse只能处理形如{success:ture,info:''}的json返回数据,与SpringMVC结合使用多有不便,只能如此处理:
HashMap<String,String> model = new HashMap<String,String>();
model.put("success", "true");
model.put("info", "保存成功");
return new ModelAndView("/app/customer/list",model);
很是雅观,鉴于前面改写过Ext.form.Action.Submit.run方法,不妨也改写一下Ext.form.Action.Submit.handleResponse,让其支持复杂一点的json数据
Ext.override(Ext.form.Action.Submit,{
handleResponse : function(response){
var opts = this.options;
if(this.form.errorReader){
var rs = this.form.errorReader.read(response);
var errors = [];
if(rs.records){
for(var i = 0, len = rs.records.length; i < len; i++) {
var r = rs.records[i];
errors[i] = r.data;
}
}
if(errors.length < 1){
errors = null;
}
return {
success : rs.success,
errors : errors
};
}
//在options中配置root参数,root:'a.b.c'
if(opts.root){
var l = opts.root.split('.');
var o = Ext.decode(response.responseText);
Ext.each(l,function(n){
if(o[n])
o=o[n];
});
return o;
}
return Ext.decode(response.responseText);
}
});
Ext,真的可以随心所欲的
分享到:
相关推荐
在Ext JS中,`Ext.form_load`涉及到的主要知识点是FormPanel的数据加载机制,这包括了对FormPanel的form对象、BasicForm、doAction方法、Ext.form.Action对象以及JsonReader的使用。以下是对这些概念的详细解释: 1...
7.1.5 为element对象提供加载功能:ext.elementloader / 295 7.1.6 为组件提供加载功能:ext.componentloader / 296 7.2 代理 / 299 7.2.1 代理概述 / 299 7.2.2 基本的代理:ext.data.proxy.proxy / 300 7.2.3...
4. **处理服务器返回结果**:当服务器返回数据时,通常会以JSON格式返回,因此需要解析这些数据并进行相应的业务逻辑处理。 ```javascript var result = Ext.util.JSON.decode(response.responseText); ``` ###...
表单的提交可以通过`form.getForm().submit()`实现,可以设置回调函数处理成功或失败的情况,例如: ```javascript form.getForm().submit({ success: function(form, action) { Ext.Msg.alert(' 成功 ', action....
9. **JSON数据交互**: 服务器返回的响应通常是JSON格式,我们可以解析这些数据以确定登录是否成功。 10. **表单验证**: 在提交表单之前,可以使用`form.validate()`来检查所有字段是否有效。ExtJS提供了多种验证...
在Ext JS中,我们可以使用`Ext.Ajax`或`Ext.form.action.Submit`来实现这一点。批量上传时,我们可能需要对每个文件进行单独的提交,或者将所有文件打包成一个大的多部分表单数据包发送。 配置文件在批量上传中也...
- `Ext.util.JSON.decode(response.responseText)`用于将服务器返回的JSON字符串转换为JavaScript对象。 - 通过判断`responseArray.success`的值来确定操作是否成功。 #### 三、同步提交 除了上述两种异步提交...
- **监听提交事件**:使用`form.submit()`方法触发表单提交,传入一个包含回调函数的对象,处理成功和失败的情况。 - **处理服务器响应**:在回调函数中,可以访问到服务器返回的数据,进行后续的业务逻辑处理。 ...
在`success`回调函数中,`response.responseText` 用于获取服务器返回的JSON字符串,然后通过 `Ext.util.JSON.decode()` 解析成JavaScript对象,以便进一步处理。如果服务器返回的数据格式如`{success: true, msg: '...
2. **表单提交**:当用户选择好文件后,可以通过`Ext.Ajax.request`或者`Ext.form.Basic.submit`方法将表单数据发送到服务器。表单数据会封装在一个FormData对象中,方便Struts2处理。 3. **Struts2配置**:在...
`form.submit()`根据后端返回的JSON数据的`success`字段自动选择成功或失败的回调,同时能处理部分前台错误。然而,对于后台异常情况,如action不存在,`form.submit()`可能无法妥善处理,导致JavaScript错误。 ...
在这种情况下,`Ext.Ajax.request`方法用于发送请求,`params`对象包含了要发送的数据,`success`函数处理成功的回调。 总结: EXT JS提供了灵活的表单数据提交方式,包括默认的AJAX提交、非AJAX提交以及使用Ajax类...
`Ext.XTemplate` 类似于 `Ext.Template`,但它更加强大和灵活,支持更复杂的逻辑和数据处理。例如,它可以用于遍历数组或对象,并根据条件生成不同的 HTML 内容。 #### 三、Event、Component and Container **3.1 ...
3. **返回响应**:将处理结果封装成JSON或其他格式,通过Response对象返回到前端。EXTJS的提交回调函数可以解析这个响应,根据结果更新界面或者给出用户反馈。 结合示例代码,我们可以有以下结构: EXTJS部分: ``...
在`doAction`方法中,第二个参数是从`load`或`submit`方法传递过来的`Ext.form.Action`对象的配置数据。配置数据主要包括以下几部分: - **success/failure**:用于定义请求成功或失败后的回调函数。 - **response*...
- `<package>`定义了一个名为`extjs`的包,继承自`json-default`,用于处理JSON响应。 - `<action>`指定了请求路径和处理类,其中`uploadPath`参数定义了文件保存的目录。 - `<result>`配置了返回结果的类型和内容...
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...
在实际项目中,你还需要考虑更多细节,比如错误处理、安全措施(如防止SQL注入和XSS攻击)、以及前后端的通信协议(JSON、XML等)。对于初学者来说,这是一个很好的起点,通过实践这个例子,可以更好地理解客户端与...
- 使用`Ext.form.action.Submit`和`Ext.form.action.Load`类,可以定制化提交和加载数据的行为,比如处理JSON或XML响应,或者进行错误处理。 3. **示例代码分析**: - 在提供的示例中,可能包含了各种表单验证的...