}
第二步、 在业务处理类中定义一个方法来处理分页 方法名为paging(int offet,int pagesize)
在类中使用注解方式为EntityManager 注入依赖对象 @PersistenceContext EntityManager em;
public PageModle paging(int offset,int ){
//定义一个Query对象
Query queryTotal=em.createQuery("select o from Object o");
//定义一个整型变量用来保存记录集
int total=queryTotal.getResultList().size();
//定义一个Query对象
Query queryResult=em.createQuery("select o from Object o");
//从数据库中的第几条数据查询起
queryResult.setFirstResult(offset);
//要从数据库中查询出最多的记录
queryResult.setMaxResults(pagesize);
//定义一个List对象用来保存查询出当前页面的集
List currentPageList=queryResult.getResultList();
//实例化对象PageModel
PageModel pm=new PageModel();
pm.setTotal(total);
pm.setCurrentPagelistDate(currentPagelist);
return pm;
}
第三步、在struts2.1 Action中调用业务处理类中的paging(int offset,int currentPageList)代码如下:
public String getPages() throws Exception{
//默认设置从数据库中的第一条数据开始查询,总共要查询3条数据
int offset=0;
int pagesize=3;
if(request.getParameter("pager.offset")!=null)
{
offset=Integer.parseInt(request.getParameter("pager.offset"));
}
PageModel pm=业务处理类.pagings(offset, pagesize);
//把PageModel对象保存在request范围内中
request.setAttribute("pm",pm);
return "success";
}
第四步、需要在jsp中页面进行数据的显示:
1、需要从网上下载一个pager-taglib.jar,导入项目中
2、在jsp页面中把设置一个标签指令:<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>
3、下面需要写以下代码:
<!-- 分页 -->
<pg:pager url="action名称!action方法.action" items="${pm.total}" export="currentPageNumber=pageNumber" maxPageItems="3">
<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>
效果如下: