25.avi 【PageModel的实现原理】

 

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>

      


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值