工作中用到了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. Web 测试经验总结

    Web功能测试常用方法 1.页面链接检查每一个链接是否都有对应的页面,并且页面之间切换正确: 2.相关性检查删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确. 3.检查按钮的功能 ...

  2. 如何在 Arch Linux 的终端里设定 WiFi 网络

    如果你使用的是其他 Linux 发行版 而不是 Arch CLI,那么可能会不习惯在终端里设置 WiFi.尽管整个过程有点简单,不过我还是要讲一下.在这篇文章里,我将带领新手们通过一步步的设置向导,把 ...

  3. php中静态变量和静态方法

    1,静态变量:所有对象共享的变量成为静态变量.静态变量类似于全局变量,不过全局变量破坏对象的封装性,因此其对应于面向过程:静态变量对应于面向对象. 2,全局变量,全局变量的使用实例如下,声明全局变量时 ...

  4. Jquery EasyUI的添加,修改,删除,查询等基本操作介绍

    http://www.jb51.net/article/42016.htm 初识Jquery EasyUI看了一些博主用其开发出来的项目,页面很炫,感觉功能挺强大,效果也挺不错,最近一直想系统学习一套 ...

  5. pthread_detach pthread_join pthread_create

    pthread_create:创建线程以后线程直接开始运行: pthread_detach pthread_join:线程资源的释放方式. 创建一个线程默认的状态是joinable, 如果一个线程结束 ...

  6. jdk版本

    windows: set java_home:查看JDK安装路径 java -version:查看JDK版本 linux: whereis java which java (java执行路径) ech ...

  7. javascript 的button onclick事件不起作用的解决方法

    在项目中遇到个问题:servlet向前端返回如下按钮,当course_ID为数字是onclick事件正常,但当course_ID含有字母时onclick事件就不起作用.网上找了很多方法都不管用,最后自 ...

  8. Deep Learning in a Nutshell: Core Concepts

    Deep Learning in a Nutshell: Core Concepts This post is the first in a series I’ll be writing for Pa ...

  9. iOS 代理与block 逆向传值 学习

    一般在项目中出现逆向传值的时候就需要用到代理.block 或者通知中心了.由于公司的项目底层封装的很好,所以项目做了三四个月就算碰到需要逆传的情况也不用自己处理.但是最近遇到了一个特别的情况就需要自己 ...

  10. serialVersionUID要注意以下几点:

    今天在使用eclipse开发的时候,遇到一个warning,看到warning我总觉得不爽,使用自动修复后,发现eclipse在代码中加入了“private static final long ser ...