请求我们可以暂分为两种:一种是表单Form的请求提交,一种是AJAX的请求。
我们现在对这两种请求的返回结果进行读取。
在后台用我们自定义的XML格式。
然后写个JS对XML进行读取。
1:对AJAX请求返回的xml读取
var AjaxRead = {};
AjaxRead = function (doc){
this.xmlData = doc;
var root = doc.documentElement || doc;
var q = Ext.DomQuery;
var sv = q.selectValue("success", root, true);
success = sv !== false && sv !== 'false'&& sv!=='otherfalse';
var ns = q.select("field", root);
for(var i = 0, len = ns.length; i < len; i++) {
var n = ns[i];
var msg = q.selectValue("msg", n, 0);
var type = q.selectValue('@type',n,0);
if(type == 'success'){
Ext.MessageBox.show({
title:'成功',
msg: msg,
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.INFO
})
}
else if(type=='exception'){
Ext.MessageBox.show({
title:'错误',
msg: msg,
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.ERROR
})
}
}
}
2:对一般FORM请求返回的XML读取:
Ext.form.CMXmlErrorReader = function(){
//下面这段不理解,字面上是 传入当前对象给父类的构造方法
Ext.form.CMXmlErrorReader.superclass.constructor.call(this, {
totalRecords:"total",
record : 'field',
success: '@success'
}, [
'id', 'msg'
]
);
this.totalRecords=0;
}
//集成自XMLReader复写一下读数据时候的操作
Ext.extend(Ext.form.CMXmlErrorReader, Ext.data.XmlReader,
{
getTotalCount:function()
{
/*
var doc = this.xmlData;
if(doc==null)
{
return 0;
}
var root = doc.documentElement || doc;
var q = Ext.DomQuery;
var totalRecords = 0;
totalRecords = q.selectNumber(this.meta.totalRecords, root, 0);
//Ext.MessageBox.alert(totalRecords);
return totalRecords;
*/
return this.totalRecords;
}
,
readRecords : function(doc){
//this.meta指的是初始化xmlReader时的config配置项
this.xmlData = 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);
this.totalRecords = totalRecords;
}
if(this.meta.success){
var sv = q.selectValue(this.meta.success, root, true);
success = sv !== false && sv !== 'false'&& sv!=='otherfalse';
}
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;
// add by gjw
// var info = Ext.MessageBox.INFO;
var type = q.selectValue('@type',n,0);
var msg = q.selectValue('msg',n,0);
if(type == 'success'){
/*
Ext.MessageBox.show({
title:'成功',
msg: msg,
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.INFO
})
*/
//Ext.Msg.alert('成功',v);
}
else if(type=='exception'){
// deal with common exception
Ext.MessageBox.show({
title:'错误',
msg: msg,
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.ERROR
})
}
else if(type=='session_error'){
//deal with session error
RS.showLogin({msg:msg});//显示登录窗口页面
//console.log("session error:"+msg);
}
// end by gjw
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
};
}
}
);
xml格式如:
<message success="true"><field type="success"><msg><![CDATA[删除成功!]]></msg></field></message>
分享到:
相关推荐
在本文中,我们将深入探讨如何在ExtJS 4框架中实现Grid组件的修改和删除功能,同时结合Struts2和Hibernate技术,构建一个完整的CRUD(创建、读取、更新、删除)应用。ExtJS 4是一个强大的JavaScript UI库,提供了...
首先,XML是一种结构化数据格式,它以易于读取和解析的方式存储信息。在ExtJS中,我们可以利用XMLReader来解析XML文档,将XML节点转化为可以用于TreePanel的模型对象。XMLReader是Ext.data.reader.Reader的子类,它...
本篇我们将深入探讨“Extjs之旅”中的一个关键组件——Combox(组合框),特别是其远程加载数据的特性。 Combox在ExtJS中是一个非常灵活的控件,它可以看作是下拉列表和文本输入框的结合体,用户可以输入文本搜索,...
在Struts2中,可以通过`@Result`注解或者在struts.xml配置文件中定义结果类型来读取XML文件。假设我们有一个名为`getData.action`的Action,它可以返回XML内容: ```java public class GetDataAction extends ...
标题 "extjs的Word导出,excel读取和导出demo" 涉及到的是在Web应用程序中使用ExtJS框架进行数据导出至Word和Excel格式的技术实践。ExtJS是一个强大的JavaScript库,用于构建富客户端的Web应用,而Excel和Word导出则...
5. **数据存储与数据绑定**:ExtJS的数据模型(Model)和数据存储(Store)系统支持JSON、XML、CSV等多种数据格式,方便与服务器进行数据交换。数据绑定机制使得UI组件能实时反映数据变化。 6. **拖放功能**:ExtJS...
- **Model 定义**:Model 是 ExtJS 4.0 中用于定义数据结构的核心类之一。它定义了数据的字段及其属性,为后续的数据操作提供基础。 - **字段类型**:Model 支持多种字段类型,如字符串、数字、日期等,每种字段类型...
根据提供的文件信息,本文将详细解析ExtJS 4中如何处理不同类型的Store及与之相关的数据操作、模型定义以及前端展示等内容。 ### ExtJS 4中的Store与数据管理 #### Store概念简介 在ExtJS 4中,Store是用于存储...
ExtJS中的模型类提供了与后台数据交互的功能,包括数据的读取、写入和验证。模型通常与JSON或XML等数据格式进行绑定,并使用Store管理。 2. **视图(View)**:负责展示用户界面。视图通常由组件(如面板、表格、...
SpringMVC+ExtJS4案例是一个综合性的Web项目开发示例,主要展示了如何结合SpringMVC、Hibernate和ExtJS4来构建一个具有基础CRUD(创建、读取、更新、删除)功能的Web应用程序。该项目涉及到的技术栈是企业级开发中...
4. **Ajax和数据存储(Ajax and Data Stores)**:提供了XML、JSON等格式的数据读取和写入,以及远程数据存储的实现,便于与服务器进行异步通信。 5. **拖放功能(Drag and Drop)**:EXTJS 3.0支持拖放操作,使得...
Hibernate支持CRUD(创建、读取、更新、删除)操作,以及复杂的查询,同时提供了缓存机制以提高性能。 4. **ExtJS**:在前端,ExtJS提供了大量的UI组件,如表格、树形结构、表单、图表等,可以构建出交互性强、用户...
这个DEMO是将这些技术集成在一起,以实现数据的创建(Create)、读取(Read)、更新(Update)和删除(Delete),即CRUD操作,并且利用Struts2的JSON插件来增强与前端ExtJS的交互。 首先,Struts2作为表现层框架,...
总结,这个示例展示了如何使用ExtJS的GridPanel和TreePanel组件,结合后台数据读取,实现分页显示表格数据和树形结构数据,以及复选框的联动效果。在Visual Studio 2008环境中,开发者可以编写和调试这些功能,为...
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...
2. **EXTJS表单封装类**:EXTJS提供了强大的表单处理能力,能够方便地创建、读取和提交表单数据。表单封装类可以帮助开发者简化代码,提高代码复用性,使得表单的创建和验证变得更加容易。 3. **JSON数据交互**:在...
这可能需要对Excel的XML格式(例如,.xlsx文件的Open XML格式)有一定的理解。 3. 创建一个包含了所有数据和格式信息的Excel文件,这可以通过使用像SheetJS这样的库来完成,它可以将数据转换成Excel文件格式。 4. ...