【PageModel.java】
【OrgManagerImpl.java】
//查找所有子orgs, 封装在PageModel内 public PagerModel findOrgs(int parentId, int offset, int pageSize) {
//获取总记录数total,所要查询的数据datas int total = 0; List datas = null;
String countHql = null; String selectHql = null;
if (parentId == 0) { countHql = "select count(*) from Orgnization o where o.parent is null"; selectHql = "select o from Orgnization o where o.parent is null"; } else { countHql = "select count(*) from Orgnization o where o.parent.id = " + parentId; selectHql = "select o from Orgnization o where o.parent.id = " + parentId; }
total = ((Long)getSession().createQuery(countHql).uniqueResult()).intValue();
datas = getSession().createQuery(selectHql) .setFirstResult(offset) .setMaxResults(pageSize) .list();
PagerModel pm = new PagerModel(); pm.setTotal(total); pm.setDatas(datas);
return pm; } } |
【OrgAction.java】
protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
OrgActionForm oaf = (OrgActionForm)form; int offset = 0; try { offset = Integer.parseInt(request.getParameter("pager.offset")); } catch (Exception ignore) { } request.setAttribute("pm", orgManager.findOrgs(oaf.getParentId(),offset,10));
//在主窗口内添加"返回操作"的ppid int ppid = 0; if (oaf.getParentId() != 0) { Orgnization org = orgManager.findOrg(oaf.getParentId()); Orgnization parent = org.getParent(); if (null != parent) { ppid = parent.getId(); } } request.setAttribute("ppid", ppid); return mapping.findForward("index"); } |
【呈现页面】
<!-- 可以在这里插入分页导航条 --> <pg:pager url="org.do" items="${ pm.total }" export="currentPageNumber = pageNumber"> <pg:param name="parentId"/> <pg:first>
|