page-taglib标签结合SSH框架进行Java分页
来源:互联网 发布:2016中国crm软件排名 编辑:程序博客网 时间:2024/06/09 15:25
page-taglib是Java中用于分页的框架,框架中各种标签的使用是的java分页变得更加简单,我们以一个简单的例子讲解page-taglib中的各种标签的含义,然后综合使用完成机构管理中的分页。
首先需要搭建环境:
1、将pager-taglib-2.0.jar拷贝到lib目录下。
2、在jsp页面中引入标签库:
<%@taglibprefix="pg" uri="http://jsptags.com/tags/navigation/pager"%>
3、 采用标签方式对页面进行布局设计:
<pg:pager items="1001" export="currentPageNumber=pageNumber"><!-- export对pageNumber的重命名 --> <pg:first> <a href="${pageUrl }">首页</a> </pg:first> <pg:prev> <a href="${pageUrl }">前页</a> </pg:prev> <pg:pages> <c:choose> <c:when test="${currentPageNumber eq pageNumber }"> <font color="red">${pageNumber }</font> </c:when> <c:otherwise> <a href="${pageUrl }">${pageNumber }</a> </c:otherwise> </c:choose> </pg:pages> <pg:next> <a href="${pageUrl }">后页</a> </pg:next> <pg:last> <a href="${pageUrl }">尾页</a> </pg:last> </pg:pager>
结合上面的代码,我们分析标签的含义:
<pg:pager>标签:设置分页的总体参数,items为总记录数,pager标签正是根据这个值来计算分页参数。
<pg:first>标签:表示首页,pageUrl - 分页链接URL地址(最重要的export参数)。
<pg:prev>标签:表示上一页。
<pg:next>标签:表示下一页。
<pg:last>标签:表示最后一页。
<pg:pages>标签:表示循环输出页码信息,在这里用jstl标签表示选中的页码为当前页,并显示红色。
下面结合OA中机构管理中的分页,分析采用Page-taglib框架是如何进行分页的。
1、搭建环境:拷贝pager-taglib-2.0.jar到lib目录下
2、因为在分页中需要返回一个实体PageModel,这个实体包括了总的记录数和当前页所具有的结果集
package com.bjsxt.oa; import java.util.List; public class PageModel { /** * 总记录数 */ private int total; /** *当前页结果集 */ private List datas; public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public List getDatas() { return datas; } public void setDatas(List datas) { this.datas = datas; } }
3、在OrgAction中继承了DispatchAction类,如果没有指定method 方法,那么action 自动匹配到 unspecified 这个函数,所以我们在ActionForward的unspecified中编写代码,获得offset和pagesize两个参数。
OrgActionForm oaf=(OrgActionForm)form; int offset=0; try { offset=Integer.parseInt(request.getParameter("pager.offset")); } catch (Exception ignore) { } int pagesize=10;//默认情况下为10 //TODO:获取机构类别,并传递到界面 request.setAttribute("pm", orgManager.findOrgs(oaf.getParentId(),offset,pagesize);
4、在OrgManagerImpl实现类中:
String selectCountHql="select count(*) from Orgnization o where o.parent is null"; if(parentId!=0){ selectCountHql="select count(*) from Orgnization o where o.parent.id="+parentId; } //获得总的记录数 int total=((Long)getSession().createQuery(selectCountHql).uniqueResult()).intValue(); //查询当前页的数据 String selectHql="select o from Orgnization o where o.parent is null"; if(parentId!=0){ selectHql="select o from Orgnization o where o.parent.id="+parentId; } //取得当前页的数据 List datas=getSession().createQuery(selectHql) .setFirstResult(offset) .setMaxResults(pagesize) .list(); //将查询结果赋给一个实体返回 PageModel pm=new PageModel(); pm.setTotal(total); pm.setDatas(datas); return pm;
其中返回的结果采用List集合表示,setFirstResult(offset)表示选择的页面页数,setMaxResults(pagesize)表示每页的数据量。
5、在jsp中引入标签库:
<%@taglibprefix="pg" uri="http://jsptags.com/tags/navigation/pager"%>
6、采用标签布置页码:
<pg:pager url="org.do" items="${pm.total }" export="currentPageNumber=pageNumber"><!-- export对pageNumber的重命名 --> <pg:param name="parentId"/> <pg:first> <a href="${pageUrl }">首页</a> </pg:first> <pg:prev> <a href="${pageUrl }">前页</a> </pg:prev> <pg:pages> <c:choose> <c:when test="${currentPageNumber eq pageNumber }"> <font color="red">${pageNumber }</font> </c:when> <c:otherwise> <a href="${pageUrl }">${pageNumber }</a> </c:otherwise> </c:choose> </pg:pages> <pg:next> <a href="${pageUrl }">后页</a> </pg:next> <pg:last> <a href="${pageUrl }">尾页</a> </pg:last> </pg:pager>
在<pg:pager>标签中,url表示分页的链接根地址,指明了请求的入口地址,是与struts的配置文件struts-config.xml中的配置相关联。
pager标签会在这个链接的基础上添加分页参数。Items表示:返回来的总记录数,采用el表达式获取。
在不同的页面中跳转的时候,需要传递一个id,在保持这个数据的时候,不能直接跟在url后面,需要使用<pg:param name="parentId"/>来传递。
为了方便数据的区别,使用export属性对pageNumber重命名为currentPageNumber,这是为了test="${currentPageNumber eqpageNumber }判断的需要。
以上就是使用pager-taglib对java分页的简单应用,框架的使用使得程序的开发更加的简洁.
- page-taglib标签结合SSH框架进行java分页
- page-taglib标签结合SSH框架进行Java分页
- java page-taglib分页
- 分页标签 (page-taglib)使用指南
- ssh中利用pager-taglib和filter进行分页
- Pager-taglib分页标签
- 分页标签:pager-taglib使用指南
- 分页标签:pager-taglib使用指南
- pager-taglib分页标签使用方法
- 分页标签:pager-taglib介绍
- pager-taglib分页标签使用方法
- pager-taglib -- 分页标签用法
- 分页标签:pager-taglib使用指南
- SSH2 分页bean(运用page-taglib)
- 简单的分页方法page-taglib
- java分页 pager-taglib
- java分页 pager-taglib
- 使用Pager-taglib进行分页
- 对函数 cblas_sgemm的说明
- es(elasticsearch)5.4下params参数的使用
- es6 module / import / export
- 2017-6-8 我的第一篇博客
- leetcode hard模式专杀之57. Insert Interval
- page-taglib标签结合SSH框架进行Java分页
- Server 2008R2 卸载Oracle 11g
- ubuntu14.04安装eclipse后启动栏图标为灰色问号
- 数据应用达人之SQL基础教程分享2
- Deep Learning的学习实践 5 -- CNN
- 集成Apk到Android源码中编译
- python opencv3人脸识别(windows)
- “共享经济”的风催熟了“信用经济”
- 使用gdb调试多进程多线程程序