如何使用Hibernate自带的分页功能,在jsp页面上实现分页效果?

时间:2022-09-20 20:32:25
public class Data1Action extends Action {
/*
 * Generated Methods
 */

/** 
 * Method execute
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return ActionForward
 */
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
   
   Session session = HibernateUtil.currentSession(); 
   Transaction tx = session.beginTransaction(); 
   Query q = session.createQuery("from Data"); 
   
    q.setFirstResult(0); //查询记录的起始位置
   q.setMaxResults(8);  //查询记录数
   tx.commit(); 
   List list = q.list(); 
   Iterator it = list.iterator(); 
   ArrayList datas=new ArrayList();
   while (it.hasNext()) { 
          Data data=(Data)it.next();
          DataForm dt=new DataForm();
          dt.setId(data.getId());
          dt.setName(data.getName());
          datas.add(dt);
          System.out.println(data.getId()+"->"+data.getName()+"->"+data.getTime());     
          } 
   request.setAttribute("datas", datas);
   session.close(); 

   return mapping.findForward("test");
}

请问我在jsp页面里面如何控制 q.setFirstResult(0); //查询记录的起始位置
          q.setMaxResults(8);  //查询记录数
实现分页,请高手指教

6 个解决方案

#1


该回复于2015-05-26 13:21:20被管理员删除

#2


写一个标签吧,把上一页,下一页的javascript函数放里面
然后在标签里得到当前页和每页记录数,在标签里显示,用JspWriter输出

#3


我的想法是在action里面定义两个变量
例如
int a,int b
然后
q.setFirstResult(a); //查询记录的起始位置 
q.setMaxResults(b);  //查询记录数

我就是不知道,如何在jsp页面里面处理这两个变量

#4


顶上去,希望高手指教

#5


二楼的方法不错,还有更好的吗?关注ING

#6


写一表单,用JAVASCRIPT来控制表单的提交,例如
<form action="" name="pageForm" method="post">
<font color="#ff0000">


每页显示<%=countsPerPage %>条  共<%=counts%>条 共<%=PageCounts%>页&nbsp; 跳转到第 
<select name="pageNo" onchange="jump(document.pageForm.pageNo.value)"> 
<% 
for (int i = 1; i <= PageCounts; i++) { 
%>

<option value="<%=i%>" <%=i == pageNo ? "selected" : ""%>><%=i%></option> 
<% 

%> 
</select> 
页</font> 
</form>

<script type="text/javascript"">
 function jump(x){
    var a = document.pageForm.pageNo.value;
    document.pageForm.submit();
 }
</script>

#1


该回复于2015-05-26 13:21:20被管理员删除

#2


写一个标签吧,把上一页,下一页的javascript函数放里面
然后在标签里得到当前页和每页记录数,在标签里显示,用JspWriter输出

#3


我的想法是在action里面定义两个变量
例如
int a,int b
然后
q.setFirstResult(a); //查询记录的起始位置 
q.setMaxResults(b);  //查询记录数

我就是不知道,如何在jsp页面里面处理这两个变量

#4


顶上去,希望高手指教

#5


二楼的方法不错,还有更好的吗?关注ING

#6


写一表单,用JAVASCRIPT来控制表单的提交,例如
<form action="" name="pageForm" method="post">
<font color="#ff0000">


每页显示<%=countsPerPage %>条  共<%=counts%>条 共<%=PageCounts%>页&nbsp; 跳转到第 
<select name="pageNo" onchange="jump(document.pageForm.pageNo.value)"> 
<% 
for (int i = 1; i <= PageCounts; i++) { 
%>

<option value="<%=i%>" <%=i == pageNo ? "selected" : ""%>><%=i%></option> 
<% 

%> 
</select> 
页</font> 
</form>

<script type="text/javascript"">
 function jump(x){
    var a = document.pageForm.pageNo.value;
    document.pageForm.submit();
 }
</script>