工作中用到了Extjs,从后台获取数据的时候,用到了extjs自己的Ext.data.store方法,然后封装了ExtGridReturn方法,

目的:前台用到Ext.data.store读取从后台传过来的数据,后台封装成ExtGridReturn类型

前台如下:

this.store = new Ext.data.Store({
            remoteSort:true,
            baseParams:{
                start:0,
                limit:this.pageSize
            },
            proxy:new Ext.data.HttpProxy({
                method:'POST',
                url:this.getAllUrl
            }),
            reader:new Ext.data.JsonReader({
                totalProperty:'results',
                root:'rows'
            },['rulesId','rulesTitle','rulesContent','rulesType','updateUser',{
                name:'updateTime',
                type:'date',
                dateFormat:'time'
            },'rulesAuthor','isTop',{
                name:'createTime',
                type:'date',
                dateFormat:'time'
            }])
        });

当前的数据读取器是带有root和totalProperty的,所以,后台封装的类型如下:

package cn.edu.hbcf.common.vo;
 
import java.util.List;

/**
 * Ext Grid返回对象
 *
 * @author LiPenghui
 *
 */
public class ExtGridReturn {

/**
     * 记录总条数
     */
    private int results;
    
    private int otherCount;
    /**
     * 所有数据
     */
    private List<?> rows;

public ExtGridReturn() {

}

public ExtGridReturn(int results, List<?> rows) {
        this.results = results;
        this.rows = rows;
    }

public int getResults() {
        return results;
    }

public void setResults(int results) {
        this.results = results;
    }

public List<?> getRows() {
        return rows;
    }

public void setRows(List<?> rows) {
        this.rows = rows;
    }

public int getOtherCount() {
        return otherCount;
    }

public void setOtherCount(int otherCount) {
        this.otherCount = otherCount;
    }

}
Controller中的方法就可以这样写啦:如下:

@RequestMapping(value="/selectBaseRules",method=RequestMethod.POST)
    @ResponseBody
    public Object selectBaseRules(ExtPager pager,int rulesType){
        Criteria criteria = new Criteria();
        if(pager.getStart() !=null &&pager.getLimit() !=null){
            criteria.setStart(pager.getStart());
            criteria.setLimit(pager.getLimit());
            criteria.setOracleStart(pager.getStart());
            criteria.setOracleEnd(pager.getStart() + pager.getLimit());
        }
        try {
            criteria.put("rulesType", rulesType);
            List<BaseRules> list = baseRulesService.selectBaseRules(criteria);
            int total= baseRulesService.getTotalCount();
            return new ExtGridReturn(total, list);
        } catch (Exception e) {
            e.printStackTrace();
            return new ExceptionReturn(e);
        }
    },

mybatis中的xml配置文件如下:

<select id="selectBaseRules" resultMap="BaseRulesMap" parameterType="Criteria">
    <include refid="common.Oracle_Pagination_Head" />
    select t.rules_id      rulesId,
             t.rules_title   rulesTitle,
              t.rules_content rulesContent,
           t.rules_type    rulesType,
           t.update_time   updateTime,
           t.rules_author  rulesAuthor,
           t.is_top        isTop,
           t.create_time   createTime,
           t.UPDATE_USER   updateUser,
           s.account       account,
           s.real_name     realName,
           s.user_id       userId
      from SMS_BASE_RULES t
      left join spauth.base_users s
        on s.user_id = t.update_user
        <where>
            t.rules_type=#{condition.rulesType,jdbcType=INTEGER}
        </where>
    <include refid="common.Oracle_Pagination_Tail" />
</select>

很简单的封装了Extjs读取的类型。

Extjs的数据读取器store和后台返回类型简单解析的更多相关文章

  1. [原创]SSIS-WMI 数据读取器任务:监控物理磁盘空间

    背景:       随着时间的推移,我们的DW会越来越大,也就意味着磁盘空间会越来越小,那如果哪一天留意不当,就会造成磁盘空间的不足而导致ETL失败,最终影响我们的系统的数据正确性和使用,更严重的有可 ...

  2. 数据读取器对象SqlDataReader与数据适配器对象SqlDataAdapter的使用

        一.数据读取器对象SqlDataReader的使用      如何执行有查询结果集的select语句. 1.SqlDataReader对象的作用:当包含select语句的SqlCommad对象 ...

  3. c#中使用数据读取器读取查询结果

    今天有时间了. 在看<c#数据库入门经典> ,总结数据读取器查询结果. 针对单个结果集使用读取器,有3中方法: String connString =..; String sql =@&q ...

  4. 如何在ADO中使用数据读取器(DataReader)读取数据

    DbDataReader类型(实现IDataReader接口)是从数据源获取信息最简单也最快速的方法. 数据读取器是只读向前的效据流.井且一次返回一条记录.因此.只有当你向数据源提交 Select 查 ...

  5. 调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题

    在运用Entity Framework调用存储过程的时候,遇到"调用EF的存储过程报"调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题 ...

  6. 【原创】SSIS-WMI 数据读取器任务:监控物理磁盘空间

    1.背景 随着时间的推移,我们的DW会越来越大,也就意味着磁盘空间会越来越小,那如果哪一天留意不当,就会造成磁盘空间的不足而导致ETL失败,最终影响我们的系统的数据正确性和使用,更严重的有可能导致物理 ...

  7. datasets数据读取器

    #切分数据集 img_dir = train_parameters['img_dir'] file_name = train_parameters['file_name'] df = pd.read_ ...

  8. EF调用存储过程查询表中的部分字段,报数据读取器与指定的“AdventureWorksDWModel.Student”不兼容。某个类型为“Age”的成员在同名的数据读取器中没有对应的列。

    实现功能:查询单张表Student中返回指定的列 一:数据库表结构: 二:存储过程: USE [AdventureWorksDW] GO /****** Object: StoredProcedure ...

  9. 怎样在C#中从数据库中读取数据(数据读取器)

    实现在C#中通过语句,查询数据库中的数据 SqlConnection con = null; //创建SqlConnection 的对象 try    //try里面放可能出现错误的代码        ...

随机推荐

  1. Java编程思想学习(九) 异常处理

    java的异常处理机制可以使程序有极好的容错性,让程序更加的健壮.所谓的异常,就是指的阻止当前方法或作用域继续执行的问题,,当程序运行时出现异常时,系统就会自动生成一个Exception对象来通知程序 ...

  2. poj 2891 扩展欧几里得迭代解同余方程组

    Reference: http://www.cnblogs.com/ka200812/archive/2011/09/02/2164404.html 之前说过中国剩余定理传统解法的条件是m[i]两两互 ...

  3. [NOIP2011] 提高组 洛谷P1315 观光公交

    题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2 ...

  4. groovy-实现接口

    Groovy提供了一些非常方便的方法来实现接口 使用闭包实现接口 只有一个方法的接口可以使用闭包来实现,例如 1 // a readable puts chars into a CharBuffer ...

  5. 安卓系统源码编译系列(六)——单独编译内置浏览器WebView教程

    原文                   http://blog.csdn.net/zhaoxy_thu/article/details/18883015                 本文主要对从 ...

  6. 深入浅出Redis01安装

    一 什么是Redis? Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis是一个高性能的Key-Va ...

  7. iOS动画中的枚举UIViewAnimationOptions

    若本帖转出“博客园”请注明出处(博客园·小八究):http://www.cnblogs.com/xiaobajiu/p/4084747.html 笔记 首先这个枚举属于UIViewAnimation. ...

  8. 快速上手如何使用FluentData

    http://blog.itpub.net/29511780/viewspace-1194048/ 目录:  一.什么是ORM? 二.使用ORM的优势 三.使用ORM的缺点 四.NET下的ORM框架有 ...

  9. webservice和restful的区别

    REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性.REST提出设计概念和准则为: 1.网络上的所有事物都可以被抽象为资源(res ...

  10. virtualbox 不能为虚拟电脑打开一个新任务/VT-x features locked or unavailable in MSR.

    确保了主机的BIOS中开启了Intel Virtual Technology,虚拟机配置中勾选了“启用VT-x/AMD-V”. 这是因为CPU不支持VT-X技术或者VT-X技术被锁定. 如果不打开虚拟 ...