1、DAO层
获取用户信息
@SuppressWarnings("unchecked")
@Override
public List<User> paging(int pageNow, int pageSize) {
Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query q = session.createQuery("from User u");
q.setFirstResult(pageSize * (pageNow - 1));
q.setMaxResults(pageSize);
this.list = q.list();
session.getTransaction().commit();
return list;
}
获取用户总数
@Override
public int getTotalUser() {
int totalUser = hibernateTemplate.find("from User").size();
return totalUser;
}
2、Service层
相应方法的调用
@Override
public List<User> pagingOption(int pageNow, int pageSize) {
List<User> list = userDAO.paging(pageNow, pageSize);
return list;
}
@Override
public int getTotalUser() {
return userDAO.getTotalUser();
}
3、Action
设置属性,用来保存页码
private List<Integer> pageList = new ArrayList<Integer>();
分页相关属性
private int pageNow = 1; //当前页
private int pageSize = 2; //每页显示条目数
private int totalPage; //总页数
private int totalSize; //总条目数
分页方法
public void pagingMethod() {
totalSize = userManager.getTotalUser();
if (totalSize % pageSize == 0) {
totalPage = totalSize / pageSize;
} else {
totalPage = totalSize / pageSize + 1;
}
list = userManager.pagingOption(pageNow, pageSize);
//将页码保存在一个List数组中,以便在JSP中迭代输出页码
for (int i = 1; i <= totalPage; i++) {
pageList.add(i);
}
}
4、JSP显示层
总页数${totalPage}当前第${pageNow}页
<!-- 首页和上一页 -->
<a href="browsePaging?pageNow=1">首页</a>
<s:if test="%{pageNow > 1}">
<a href="browsePaging?pageNow=${pageNow - 1}">上一页</a>
</s:if>
<!-- 页码的显示 -->
<s:iterator value="pageList" var="pageNum">
<s:if test="pageNow == #pageNum">${pageNow}</s:if>
<s:else>
<a href="browsePaging?pageNow=<s:property value='#pageNum'/>"><s:property value="#pageNum" /></a>
</s:else>
</s:iterator>
<!-- 尾页和下一页 -->
<s:if test="%{totalPage > pageNow}">
<a href="browsePaging?pageNow=${pageNow + 1}">下一页</a>
</s:if>
<a href="browsePaging?pageNow=${totalPage}">尾页</a>
<br />
<br />