JSP中查询分页怎么做啊,求指导

anchor_lin 2016-06-25 12:51:41
我想做一个就是查询的功能,但是不知道怎么分页处理,用的是JSP
...全文
160 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
欧巴广 2016-06-28
  • 打赏
  • 举报
回复
JSP的 共<s:property value="allRow" />条记录 <s:property value="about"></s:property> 共<s:property value="totalPage" />页 当前第<s:property value="currentPage" />页<br> <s:if test="%{currentPage == 1}"> 第一页 上一页 </s:if> <s:else> <a href="findAction?page=1">第一页</a> <a href="findAction?page=<s:property value="%{currentPage-1}"/>">上一页</a> </s:else> <s:if test="%{currentPage != totalPage}"> <a href="findAction?page=<s:property value="%{currentPage+1}"/>">下一页</a> <a href="findAction?page=<s:property value="totalPage"/>">最后一页</a> </s:if> <s:else> </s:else> </td> </tr> </s:iterator> Action自己写哦
欧巴广 2016-06-28
  • 打赏
  • 举报
回复
impl的,参数改下,可以直接用 @Override public List<QJlBaseinfo> queryForPage(String hql, int offset, int length) { // TODO Auto-generated method stubs Query q = session.createQuery(hql); Transaction tx = session.beginTransaction(); q.setFirstResult(offset); q.setMaxResults(length); List<QJlBaseinfo> list =q.list(); System.out.println(list.size()); session.flush(); session.getTransaction().commit(); return list; } @Override public int getAllRowCount(String hql) { // TODO Auto-generated method stub return super.getHibernateTemplate().find(hql).size(); } serviceImpl的 @Override public PageBean queryForPage(int pageSize, int page) { String hql = "from QJlBaseinfo QJl order by QJl.jlUserid"; //查询语句 int allRow = qjlBaseinfoDao.getAllRowCount(hql); //总记录数 int totalPage = PageBean.countTatalPage(pageSize, allRow); //总页数 final int offset = PageBean.countOffset(pageSize, page); //当前页开始记录 final int length = pageSize; // 每页记录数 final int currentPage = PageBean.countCurrentPage(page); // 当前页 List list = qjlBaseinfoDao.queryForPage(hql, offset, length); // //把分页信息保存到Bean当中 PageBean pageBean = new PageBean(); pageBean.setPageSize(pageSize); pageBean.setCurrentPage(currentPage); pageBean.setAllRow(allRow); pageBean.setTotalPage(totalPage); pageBean.setList(list); pageBean.init(); return pageBean; } @Override public List<QJlBaseinfo> getBase(String name, String js, String szd, String lx) { // TODO Auto-generated method stub return qjlBaseinfoDao.getBase(name, js, szd, lx); }
欧巴广 2016-06-28
  • 打赏
  • 举报
回复
private int allRow; //总记录数 private int totalPage; //总页数 private int currentPage; //当前页 private int pageSize; //每页的记录数s private boolean isFirstPage; //是否为当前第一页 private boolean isLastPage; //是否为最后一页 private boolean hasPreviousPage; //是否有前一页 private boolean hasNextPage; //是否有下一页 先写个pagebean加这些参数 在写个DAO, /** * 分页查询 * * @param hql * 查询条件 * @param offset * 开始记录 * @param length * 一次查询几条记录 * @return 查询的记录集合 */ public List<QJlBaseinfo> queryForPage(final String hql, final int offset, final int length); /** * 查询所有的记录数 * * @param hql * 查询条件 * @return 总记录数 */ public int getAllRowCount(String hql);
sinat_33637074 2016-06-27
  • 打赏
  • 举报
回复
推荐用jquery datatable 封装了分页功能
青蛙Keroro 2016-06-27
  • 打赏
  • 举报
回复
这分页是后台分页才对吧,跟JSP没关系吧。。。,如果只是用sql的话 --m为上标,n为下标,例如取出第1到5条记录,m=1,n=5,Table为表名 Select Top n-m+1 * From Table Where Id>(Select Max(Id) From (Select Top m-1 Id From Table Order By Id Asc) Temp) 后台是传进来一个页码和每页的显示数,自己写个算法处理成上标和下标代进语句就行了吧。 hibernate有自带方法 setMaxResults() setFirstResult() 大概原理就是这样,其他的自己摸索
a_will 2016-06-27
  • 打赏
  • 举报
回复
百度 jsp 分页,例子很多,看你最喜欢哪种实现方式,不过,我个人比较喜欢ajax分页,那么前端可以用 easyui 的datagrid,或者jquery的datatable,都可以实现。。。后端要把总页数、当前页、所有记录数计算好。。。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧