由于公司的FORM提交都是返回JSON数据,现在有一个FORM由于加了权限,所以没有提交到正确的ACTION,而被权限filter拦截,返回的一个HTML页面,提示没有权限的信息。由于是一个HTML页面,所以在把它当JSON解析时会有错误。要解决这个错误,就要这样做。
form.errorReader=errorReader;
var errorMsg = Ext.data.Record.create([{name:'html'}]);
var errorReader = new Ext.data.HtmlReader({
records:'body'
},errorMsg);
]
HtmlReader是我随便定义的一个类,
Ext.data.HtmlReader = function(meta, recordType){
meta = meta || {};
Ext.data.HtmlReader.superclass.constructor.call(this, meta, recordType || meta.fields);
};
Ext.extend(Ext.data.HtmlReader, Ext.data.DataReader, {
read : function(response){
var doc = response.responseText;
if(!doc) {
throw {message: "HtmlReader.read: HTML Document not available"};
}
return this.readRecords(doc);
},
readRecords : function(doc){
this.htmlData = doc;
var root = doc.documentElement || doc;
var q = Ext.DomQuery;
var recordType = this.recordType, fields = recordType.prototype.fields;
var sid = this.meta.id;
var totalRecords = 0, success = true;
if(this.meta.totalRecords){
totalRecords = q.selectNumber(this.meta.totalRecords, root, 0);
}
if(this.meta.success){
var sv = q.selectValue(this.meta.success, root, true);
success = sv !== false && sv !== 'false';
}
var records = [];
/*var ns = q.select(this.meta.record, root);
for(var i = 0, len = ns.length; i < len; i++) {
var n = ns[i];
var values = {};
var id = sid ? q.selectValue(sid, n) : undefined;
for(var j = 0, jlen = fields.length; j < jlen; j++){
var f = fields.items[j];
var v = q.selectValue(f.mapping || f.name, n, f.defaultValue);
v = f.convert(v, n);
values[f.name] = v;
}
var record = new recordType(values, id);
record.node = n;
records[records.length] = record;
} */
return {
success : success,
records : records,
totalRecords : totalRecords || records.length
};
}
});
这个是直接从XmlReader拷贝过来的,还没有读取,待以后完善。
分享到:
相关推荐
43、Ext.CycleButton类 ……………… 39 44、Ext.form.BasicForm类 …………… 40 45、Ext.form.Field类 …………………… 41 46、Ext.form.Checkbox类 …………… 42 47、Ext.form.Radio类 ………………… 43 48、...
4.3.5 ext.error中的静态方法 / 133 4.4 深入了解类的创建及管理 / 135 4.4.1 开始创建类 / 135 4.4.2 创建类的类:ext.class / 137 4.4.3 所有继承类的基类:ext.base / 151 4.4.4 实现动态加载:ext.loader ...
39. **Ext.form.BasicForm类**:基础表单类,管理表单的提交和验证。 40. **Ext.form.Field类**:表单字段的基类,包含基本的表单字段行为。 41. **Ext.form.Checkbox类**:复选框字段。 42. **Ext.form.Radio类*...
43、Ext.CycleButton类 ……………… 39 44、Ext.form.BasicForm类 …………… 40 45、Ext.form.Field类 …………………… 41 46、Ext.form.Checkbox类 …………… 42 47、Ext.form.Radio类 ………………… 43 48、...
例如,EXT.form.BasicForm和EXT.form.Panel是表单的基础,而EXT.form.field.*系列类则代表各种表单字段。 2. **EXT.grid**: EXT.grid是EXT中的数据展示组件,用于显示多行、多列的数据。它可以处理大量数据,并且...
- **概述**:`Ext` 是 ExtJS 的核心命名空间,包含了全局的方法和属性。 - **用途**:提供了一个统一的入口来访问 ExtJS 库的功能,如创建组件、管理事件等。 - **常用方法**: - `Ext.create()`: 创建一个组件实例...
在EXTJS中,文件上传通常涉及到EXT.form.BasicForm、EXT.form.FileField和EXT.util.Queue等组件。EXT.form.FileField是用于创建一个文件选择输入字段的组件,用户可以通过这个字段选择本地文件进行上传。而EXT.util....
在Ext JS中,`Ext.form_load`涉及到的主要知识点是FormPanel的数据加载机制,这包括了对FormPanel的form对象、BasicForm、doAction方法、Ext.form.Action对象以及JsonReader的使用。以下是对这些概念的详细解释: 1...
3. **Number 类**:增强了JavaScript的数字处理,提供了如Ext.Number.from()用于安全地转换值为数字,Ext.Number.round()进行四舍五入等。 4. **String 类**:扩展了字符串操作,例如Ext.String.format()用于格式化...
例如,`Ext.my`文件夹可能包含不同控件的示例,比如使用`Ext.grid.Panel`创建数据网格,用`Ext.form.BasicForm`构建表单,或使用`Ext.tree.TreePanel`展示层次结构数据。 2. **前后台数据交互**:EXTJS支持AJAX技术...
- **Ext.form.BasicForm**: 提供表单的提交和数据验证功能。 7. **树形视图(Trees)** - **Ext.tree.TreePanel**: 显示树状数据结构,支持节点的拖放、展开折叠等操作。 - **TreeStore**: 用于管理树的数据,...
重写 代码如下: //解决checkboxgroup回填数据问题 Ext.override(Ext.form.BasicForm,{ findField : function(id){ var field = this.items.get(id); if(!field){ this.items.each(function(f){ if(f.isXType(...
在EXTJS中,文件上传通常涉及到EXT.form.BasicForm和EXT.form.field.File这两个主要组件。BasicForm是用于管理表单数据的类,而EXT.form.field.File则是一个特殊的输入字段,允许用户选择本地文件进行上传。这个功能...
深入浅出ExtJS第2版+源码..1 下载EXT发布包 1 1.2 如何查看EXT自带的API和示例 1 1.3 为什么有些示例必须放在服务器上 才能看到效果 2 1.4 Hello World 2 1.4.1 直接使用下载的发布包 2 1.4.2 在项目中使用EXT...
### Extjs 中关于 Cookie 的操作 #### 一、引言 在 Web 开发中,Cookie 是一种常用的数据存储方式,用于保存用户的一些基本信息或者状态,从而实现网站的个性化设置或登录状态保持等功能。Extjs 作为一种强大的 ...
`Ext.form.BasicForm` 是一个基本的表单类,用于处理表单的提交和加载操作。 - **属性:** - `baseParams`: 默认请求参数。 - `method`: 请求方式,默认为 `GET` 或 `POST`。 - `url`: 默认 URL 地址。 - `...
它通常与`Ext.form.BasicForm`和`Ext.Ajax`一起使用,实现异步文件上传。 2. **Struts2上传插件**:Struts2是一个流行的Java Web框架,它提供了文件上传的支持。Struts2的Upload插件可以处理文件上传请求,将上传的...
这里的`form`对象实际上是`Ext.form.BasicForm`类型,它包含了`load`和`submit`两种方法,用于完成数据的加载和提交工作。 ### load和submit方法 - **load方法**:该方法主要用于从服务器端加载数据并填充到表单中...
在`change`事件处理函数中,创建一个隐藏的Ext.form.BasicForm实例,并将FileUploadField添加到表单中。 4. **提交表单**: 使用`form.submit()`方法,指定服务器端的URL和可能的回调函数,这会使用Ajax提交文件...