博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Extjs的数据读取器store和后台返回类型简单解析
阅读量:6830 次
发布时间:2019-06-26

本文共 2676 字,大约阅读时间需要 8 分钟。

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

转载地址:http://btjkl.baihongyu.com/

你可能感兴趣的文章
Java_异常_01_org.apache.commons.lang.exception.NestableRuntimeException
查看>>
1-AIV--使用ContentProvider获取短信
查看>>
前端优化系列 - 前端优化的思考
查看>>
火爆GitHub:100天搞定机器学习编程(超赞信息图+代码+数据集)
查看>>
TongDXP
查看>>
Python进阶-算法-插入排序
查看>>
C# 如何添加水印到PPT
查看>>
北京朝阳区第二批重点产业发展引导资金项目即将开始征集
查看>>
微信小程序开发系列五:微信小程序中如何响应用户输入事件
查看>>
My favorite examples of functional programming in Kotlin
查看>>
架构文摘:消息队列设计精要
查看>>
2018最全的iOS面试题及答案
查看>>
问题账户需求分析
查看>>
创新平台年报统计系统——利益相关者描述案例
查看>>
匹配特定数字串
查看>>
我的垂直居中
查看>>
数值分析Matlab绘制三维数据曲面图
查看>>
将Angular6自己定义的模块发布成npm包
查看>>
编译原理LL1文法Follow集算法实现
查看>>
【iOS-Cocos2d游戏开发之二十一 】自定义精灵类并为你的精灵设置攻击帧以及动画创建!【二】...
查看>>