javaSSH jsp分页

      今天写了一个分页 说起分页网上有很多种,俺是菜鸟也写了一个是关于论坛。

该分页是从hibernate层开始分页获取数据的下图 dao层:

@Override
public List<Post> getPostPage(
int plateId, int pageid, int pagesize) {
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
Query query = session.createQuery(("from Post m where m.plateId ="+plateId+"order by sendTime desc"));
query.setFirstResult((pageid-1)*pagesize);
query.setMaxResults(pagesize);
List<Post> listPage = (List<Post>)query.list();
session.close();
return listPage;
}

通过query可以得到你想要的页面的信息。int plateId 论坛模块Id, int pagei页数, int pagesize每页条数

service 层

@Override
public List<Post> getPostPage(int plateId, int pageid, int pagesize) {
List<Post> PostPage = postDao.getPostPage(plateId, pageid, pagesize);
return PostPage;
}

action层:第一个方法调用下面的方法获取最多页数

public String postList(){
/* String account = (String) request.getSession().getAttribute(
"accountName");*/
HttpServletRequest request = ServletActionContext.getRequest();
postList = postService.getPostPage(post.getPlateId(), page.getCurrentPage(), page.getPageSize());
//page.setAllPageNumber(postService.getPostListByPlateId(post.getPlateId()).size());
//page.setAllPageNumber(postListAll.size());
//获取总页数
page.setPages(postListAll());
request.setAttribute("pages",postListAll());
if(postList.size()>0)
return "ok";
else 
return "fail";
}

public int postListAll(){
int allpages =  postService.getPostListByPlateId(post.getPlateId()).size();
int pages = allpages/page.getPageSize();
int remainder = allpages%page.getPageSize();
if(remainder!=0)
{
pages++;
}
return pages;
}


jsp页面调用

 <th><a href="forum/postAction_postList?post.plateId=1&page.currentPage=1&page.pageSize=5"><%//=plateList.get(i).getPlateName() %><!-- plateList.get(i).getPlateName() -->三年级二班</a></th>

   <table class="table table-striped table-bordered table-condensed table-hover">
      <thead>
        <tr>
          <th>主题</th>
          <th>作者</th>
          <th>时间</th>
        </tr>
      </thead>
     <s:iterator value = "postList">
      <tr>
      <td><a href="forum/jsp/post_detail.jsp" ><s:property value = "theme"></s:property><a/></td>
      <td><s:property value = "sendAccountName"></s:property></td>
      <td><s:property value = "sendTime"></s:property></td>
      </tr>
     </s:iterator> 
     <tr>
       <th></th>
       <th></th>
       <th>
         <a href="forum/postAction_postList?post.plateId=1&page.currentPage=1&page.pageSize=<s:property value = "page.pageSize"/>">首页</a>
         <a href="forum/postAction_postList?post.plateId=1&page.currentPage=<s:property value = "page.currentPage-1"/>&page.pageSize=<s:property value = "page.pageSize"/>">上一页</a>
         <% 
        int sum = Integer.parseInt(request.getAttribute("pages").toString());
        %>
         <% for(int i=1;i<sum;i++){%>
         
          <a href="forum/postAction_postList?post.plateId=1&page.currentPage=<%=i%>&page.pageSize=<s:property value = "page.pageSize"/>"><%=i%></a>
        <% }
         %>
        <a href="forum/postAction_postList?post.plateId=1&page.currentPage=<s:property value = "page.currentPage+1"/>&page.pageSize=<s:property value = "page.pageSize"/>">下一页</a>
         <a href="forum/postAction_postList?post.plateId=1&page.currentPage=<s:property value = "page.pages"/>&page.pageSize=<s:property value = "page.pageSize"/>">尾页</a>
       </th>
     </tr>

</table>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值