JAVAEE——BOS物流项目04:学习计划、datagrid、分页查询、批量删除、修改功能
1 学习计划
1
n
n
n(掌握)
2、实现取派员分页查询
n
n创建PageBean封装分页参数
n定义通用分页查询方法
n将分页查询结果转为json返回
3、取派员批量删除
n页面调整
n服务端实现
4、取派员修改
n页面调整
n服务端实现
2datagrid使用方法(重要) 2.1编号姓名年龄001小明90002老王3
2.2提供json文件:
class编号姓名年龄
2.3$(function(){ ).datagrid({ //定义标题行所有的列 columns:[[ {title:}, {title:}, {title:}, {title:} ]], , rownumbers:true, singleSelect:true, //定义工具栏 toolbar:[ {text:, (){ alert(); } }, {text:}, {text:}, {text:} ], }); });
如果数据表格中使用了分页条,要求服务端响应的json变为:
请求:
响应:
3取派员分页查询页面:WEB-INF/pages/base/staff.jsp
3.1页面调整l
3.2服务端实现 3.2.1包装PageBean工具类封装分页相关的属性
3.2.2在BaseDao中扩展通用分页查询方法/** * 通用分页查询方法 pageQuery(PageBean pageBean) { int currentPage = pageBean.getCurrentPage(); int pageSize = pageBean.getPageSize(); DetachedCriteria detachedCriteria = pageBean.getDetachedCriteria(); detachedCriteria.setProjection(Projections.rowCount());//指定hibernate框架发出sql的形式----》select count(*) from bc_staff; List<Long> countList = (List<Long>) this.getHibernateTemplate().findByCriteria(detachedCriteria); Long count = countList.get(0); pageBean.setTotal(count.intValue()); //查询rows---当前页需要展示的数据集合 detachedCriteria.setProjection(firstResult = (currentPage - 1) * pageSize; int maxResults = pageSize; List rows = this.getHibernateTemplate().findByCriteria(detachedCriteria, firstResul致命魔术_蜘蛛资讯网t, maxResults); pageBean.setRows(rows); }
3.2.3在StaffAction中提供分页查询方法page; private int rows; /** * 分页查询方法 * @throws IOException */ public String pageQuery() throws IOException{ PageBean pageBean = new PageBean(); pageBean.setCurrentPage(page); pageBean.setPageSize(rows); //创建离线提交查询对象 DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Staff.class); pageBean.setDetachedCriteria(detachedCriteria); staffService.pageQuery(pageBean); //使用json-lib将PageBean对象转为json,通过输出流写回页面中 //JSONObject---将单一对象转为json //JSONArray----将数组或者集合对象转为json JsonConfig jsonConfig = new JsonConfig(); //指定哪些属性不需要转json jsonConfig.setExcludes(new String[]{"currentPage","detachedCriteria","pageSize"}); String json = JSONObject.fromObject(pageBean,jsonConfig).toString(); ServletActionContext.getResponse().setContentType("text/json;charset=utf-8"); ServletActionContext.getResponse().getWriter().print(json); return NONE; }
4取派员批量删除 4.1页面调整l数据表格datagrid提供的方法,用于获取所有选中的行:
修改删除按钮绑定的事件: