码迷,mamicode.com
首页 > 其他好文 > 详细

018 区域分页查询 - bos

时间:2017-08-16 20:19:19      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:cli   set   fit   toolbar   row   []   service   bean   war   


一、页面修改

1.更改获取分页数据的url

// 收派标准数据表格
$(‘#grid‘).datagrid( {
iconCls : ‘icon-forward‘,
fit : true,
border : false,
rownumbers : true,
striped : true,
pageList: [30,50,100],
pagination : true,
toolbar : toolbar,
url : "regionAction_pageQuery.action",
idField : ‘id‘,
columns : columns,
onDblClickRow : doDblClickRow
});

二、服务端实现

1.实现RegionAction.pageQuery

/**
* 分页查询取派员
* @return
*/
public String pageQuery(){

PageBean<Staff> pageBean = new PageBean<Staff>();
pageBean.setCurrentPage(page);
pageBean.setPageSize(rows);
DetachedCriteria dc = DetachedCriteria.forClass(Staff.class);
pageBean.setDetachedCriteria(dc);

staffService.pageQuery(pageBean);

//将pageBean转为json写到页面中
JsonConfig jsonConfig = new JsonConfig();
//设置排除属性
jsonConfig.setExcludes(new String[]{"currentPage", "detachedCriteria", "pageSize"});
String json = JSONObject.fromObject(pageBean, jsonConfig).toString();
ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");
BOSUtils.getWriter().write(json);
return NONE;
}

2.实现RegionService.pageQuery

@Override
public void pageQuery(PageBean<Region> pageBean) {
regionDao.pageQuery(pageBean);
}

三、发现分页查询代码十分相似,可以抽取到BaseAction

1.将PageBean抽取到父类BaseAction中

protected PageBean<T> pageBean = new PageBean<T>();

2.将基于easyui分页的两个属性驱动变量page和rows的set方法抽取到BaseAction中,省略变量声明,并在set方法中直接设置到PageBean中

//注入分页相关属性
public void setRows(int rows) {
pageBean.setPageSize(rows);
}

public void setPage(int page) {
pageBean.setPageSize(page);
}

3.在构造方法中获取到泛型时构造DetachedCriteria变量,并设置到PageBean中

//BaseAction的构造方法中
DetachedCriteria dc = DetachedCriteria.forClass(entityClass);
pageBean.setDetachedCriteria(dc);

4.最后在父类中抽象一个对象转换json的方法,并写到响应中

/**
* 将对象转化为json并写到响应
* @param o 对象
* @param exclueds 排除的对象属性
*/
protected void object2JsonAndWriteToResponse(Object o, String[] exclueds){
//将pageBean转为json写到页面中
JsonConfig jsonConfig = new JsonConfig();
//设置排除属性
jsonConfig.setExcludes(exclueds);
String json = JSONObject.fromObject(pageBean, jsonConfig).toString();
ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");
BOSUtils.getWriter().write(json);
}

5.子类要实现分页时,只需直接调用Service的分页方法,然后再调用父类抽取的json转化方法把PageBean传递进去即可

/**
* 分页查询
* @return
*/
public String pageQuery(){
regionService.pageQuery(pageBean);
object2JsonAndWriteToResponse(pageBean, new String[]{"currentPage", "detachedCriteria", "pageSize"});
return NONE;
}

018 区域分页查询 - bos

标签:cli   set   fit   toolbar   row   []   service   bean   war   

原文地址:http://www.cnblogs.com/tommychok/p/7375021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!