工作中用到了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读取的类型。

转载于:https://www.cnblogs.com/zrui-xyu/p/4626978.html

Extjs的数据读取器store和后台返回类型简单解析相关推荐

  1. OleDbDataReader数据读取器

    如果只想读取数据(而不更新数据),则不必将它存储在数据集内.相反,可以直接从数据库读出数据并读入应用程序 这时可以使用数据读取器来操作,可以使代码简单化. 如果程序需要通过查询结果执行连续的只读传递, ...

  2. 使用 PyTorch 数据读取,JAX 框架来训练一个简单的神经网络

    使用 PyTorch 数据读取,JAX 框架来训练一个简单的神经网络 本文例程部分主要参考官方文档. JAX简介 JAX 的前身是 Autograd ,也就是说 JAX 是 Autograd 升级版本 ...

  3. TensorFlow-谷歌深度学习库 数据读取器

    先介绍一下TensorFlow自带的数据格式: TensorFlow自带一种数据格式叫做tfrecords. 你可以把你的输入转成专属与TensorFlow的tfrecords格式并保存在本地. -关 ...

  4. 从存储区提供程序的数据读取器中进行读取时出错_三菱伺服控制程序写法破析...

    1.原点回归程序示例: M1250原点回归启动按键 Y50  定位启动 (伺服参数) Y44  轴停止 (伺服参数) Y40  PLC准备完成 (伺服参数) M1081  电机手动状态 M6401  ...

  5. 数据读取器与指定的“WNWModel.WNW_Pipe”不兼容。类型“Label”的成员在同名的数据读取器中没有对应的列

    最近在做数据连接的时候,用sql语句查询数据库报错. 本来sql语句是这么写的: select ElementId from WNW_Pipe order by ElementId desc 结果就报 ...

  6. python读取大智慧数据_大智慧数据读取器day.dat

    var dzhpath = "D:\dzh2\data\"f = io.open(dzhpath ++ "sh\day.dat","rb") ...

  7. python读取大智慧数据_大智慧数据读取接口 大智慧股票本地数据读取接口

    大智慧数据读取接口 大智慧股票本地数据读取接口 时间:2020-7-28 1:42:29 点击: 核心提示:所属分类:C资源描述:组件方法和属性说明:(1)方法GetData语法:public str ...

  8. 德国海曼HTPA 32x32d热成像传感器代替MLX90640之传感器数据读取和计算

    传感器数据读取和计算 之前的文章我们简单介绍了热成像传感器德国海曼的HTPA 32x32d的EEPROM数据读取和解析,本文主要进一步介绍传感器数据读取,最终通过五大步计算和校准得到我们想要的32x3 ...

  9. 使用 Elasticsearch 时间点读取器获得随时间推移而保持一致的数据视图

    总结一下:如果可行,我们推荐您使用 Elasticsearch 的全新时间点功能.对于深度分页,我们不再推荐使用滚动 API(虽然它仍然有效). 大多数数据都不断变化.在 Elasticsearch ...

最新文章

  1. python是一种跨平台开源免费的高级动态编程语言吗_第1章 管中窥豹:Python概述免费阅读_Python程序设计开发宝典免费全文_百度阅读...
  2. 怎么在linux的cmd中运行c项目,如何在cmd窗口编译运行c语言程序?
  3. 在日志中搜索时间间隔
  4. webpack4.0各个击破(1)—— html部分
  5. putty的窗口关闭相关的可能需要注意的细节
  6. 第六:Pytest中的setup/teardown
  7. 12-17 学习记录
  8. VS2015中搭建lua环境
  9. python模块之scipy的层次聚类简单测试与使用
  10. SQL群集多实例卸载、安装
  11. 约束规划问题与凸二次规划
  12. 基于F28335指纹识别系统
  13. 模拟游戏在设计上是如何处理对仿真性的追求的?
  14. 原型图设计软件哪个好用?6款好用软件推荐
  15. Linux中的vim最小集、指令集及其配置
  16. 多线程练习:模拟多人爬山
  17. Linux操作提示:“Cant open file for writing”或“operation not permitted”的解决办法
  18. Android自定义键盘(KeyboardView)
  19. CSS 多种布局方式
  20. 设计模式之命令模式(C语言)

热门文章

  1. 怎样往mysql里添加数据_怎么往mysql表里添加数据
  2. 螃蟹保存方法保存时间_蜂巢蜜应该怎么保存,蜂巢蜜怎么保存的时间更长
  3. c++中的队列_C ++中的队列
  4. Java 12字符串方法
  5. easymock_EasyMock TestNG示例
  6. java数组_Java数组
  7. python3 抓包 解包_Python结构包,解包
  8. fadein和fadeto_jQuery fadeIn,fadeOut,fadeTo
  9. Android通知频道,通知点
  10. 熊猫merge()–合并两个DataFrame对象