018 区域分页查询 - bos
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了018 区域分页查询 - bos相关的知识,希望对你有一定的参考价值。
一、页面修改
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的主要内容,如果未能解决你的问题,请参考以下文章
JAVAEE——BOS物流项目04:学习计划datagrid分页查询批量删除修改功能
JAVAEE——BOS物流项目05:OCUploadPOIpinyin4J重构分页代码分区添加combobox