`
wly719
  • 浏览: 290790 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

extjs之-读取xml

阅读更多
请求我们可以暂分为两种:一种是表单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>
分享到:
评论

相关推荐

    Extjs4---grid的修改、删除功能---结合struts2、hibernate

    在本文中,我们将深入探讨如何在ExtJS 4框架中实现Grid组件的修改和删除功能,同时结合Struts2和Hibernate技术,构建一个完整的CRUD(创建、读取、更新、删除)应用。ExtJS 4是一个强大的JavaScript UI库,提供了...

    Extjs复习笔记(十九)-- XML作为tree的数据源

    首先,XML是一种结构化数据格式,它以易于读取和解析的方式存储信息。在ExtJS中,我们可以利用XMLReader来解析XML文档,将XML节点转化为可以用于TreePanel的模型对象。XMLReader是Ext.data.reader.Reader的子类,它...

    ssh+extjs开发crud--经典

    在《ssh+extjs开发crud--经典》这一主题下,我们深入探讨如何结合SSH框架(即Struts2、Spring、Hibernate)与ExtJS前端框架来实现CRUD操作(即创建、读取、更新、删除)。本文旨在为初学者提供一个全面的学习路径,...

    Extjs之旅-combox之远程加载数据

    本篇我们将深入探讨“Extjs之旅”中的一个关键组件——Combox(组合框),特别是其远程加载数据的特性。 Combox在ExtJS中是一个非常灵活的控件,它可以看作是下拉列表和文本输入框的结合体,用户可以输入文本搜索,...

    ExtJs中的Grid Title部分利用XML定义(ExtJS+Struts2)

    在Struts2中,可以通过`@Result`注解或者在struts.xml配置文件中定义结果类型来读取XML文件。假设我们有一个名为`getData.action`的Action,它可以返回XML内容: ```java public class GetDataAction extends ...

    extjs的Word导出,excel读取和导出demo

    标题 "extjs的Word导出,excel读取和导出demo" 涉及到的是在Web应用程序中使用ExtJS框架进行数据导出至Word和Excel格式的技术实践。ExtJS是一个强大的JavaScript库,用于构建富客户端的Web应用,而Excel和Word导出则...

    extjs 2.0精编教程--民间版

    5. **数据存储与数据绑定**:ExtJS的数据模型(Model)和数据存储(Store)系统支持JSON、XML、CSV等多种数据格式,方便与服务器进行数据交换。数据绑定机制使得UI组件能实时反映数据变化。 6. **拖放功能**:ExtJS...

    extjs4中文视频下载地址

    - **Model 定义**:Model 是 ExtJS 4.0 中用于定义数据结构的核心类之一。它定义了数据的字段及其属性,为后续的数据操作提供基础。 - **字段类型**:Model 支持多种字段类型,如字符串、数字、日期等,每种字段类型...

    extjs4 对各类型store各种数据的读取 model 前台 等等

    根据提供的文件信息,本文将详细解析ExtJS 4中如何处理不同类型的Store及与之相关的数据操作、模型定义以及前端展示等内容。 ### ExtJS 4中的Store与数据管理 #### Store概念简介 在ExtJS 4中,Store是用于存储...

    extjs4 mvc skel-master

    ExtJS中的模型类提供了与后台数据交互的功能,包括数据的读取、写入和验证。模型通常与JSON或XML等数据格式进行绑定,并使用Store管理。 2. **视图(View)**:负责展示用户界面。视图通常由组件(如面板、表格、...

    SpringMVC+Extjs4案例

    SpringMVC+ExtJS4案例是一个综合性的Web项目开发示例,主要展示了如何结合SpringMVC、Hibernate和ExtJS4来构建一个具有基础CRUD(创建、读取、更新、删除)功能的Web应用程序。该项目涉及到的技术栈是企业级开发中...

    extjs3.0开发包含示例api

    4. **Ajax和数据存储(Ajax and Data Stores)**:提供了XML、JSON等格式的数据读取和写入,以及远程数据存储的实现,便于与服务器进行异步通信。 5. **拖放功能(Drag and Drop)**:EXTJS 3.0支持拖放操作,使得...

    ssh+extjs+mysql整合

    Hibernate支持CRUD(创建、读取、更新、删除)操作,以及复杂的查询,同时提供了缓存机制以提高性能。 4. **ExtJS**:在前端,ExtJS提供了大量的UI组件,如表格、树形结构、表单、图表等,可以构建出交互性强、用户...

    Struts2 Spring2.5 Hiberante3.3.2 +ExtJS(Struts2-json)做的CRUD

    这个DEMO是将这些技术集成在一起,以实现数据的创建(Create)、读取(Read)、更新(Update)和删除(Delete),即CRUD操作,并且利用Struts2的JSON插件来增强与前端ExtJS的交互。 首先,Struts2作为表现层框架,...

    extjs表格(表格后台数据读,分页),树(后台数据读取,复选框联动)的基本操作示例

    总结,这个示例展示了如何使用ExtJS的GridPanel和TreePanel组件,结合后台数据读取,实现分页显示表格数据和树形结构数据,以及复选框的联动效果。在Visual Studio 2008环境中,开发者可以编写和调试这些功能,为...

    精通JS脚本之ExtJS框架.part2.rar

    《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...

    EXTJS+Domino的应用例子-修正

    2. **EXTJS表单封装类**:EXTJS提供了强大的表单处理能力,能够方便地创建、读取和提交表单数据。表单封装类可以帮助开发者简化代码,提高代码复用性,使得表单的创建和验证变得更加容易。 3. **JSON数据交互**:在...

    ExtJs6 导出excel(包含分组、分组合计行、二重表头)

    这可能需要对Excel的XML格式(例如,.xlsx文件的Open XML格式)有一定的理解。 3. 创建一个包含了所有数据和格式信息的Excel文件,这可以通过使用像SheetJS这样的库来完成,它可以将数据转换成Excel文件格式。 4. ...

Global site tag (gtag.js) - Google Analytics