Struts中如何實現查詢結果分頁顯示

轉自:http://www.cdtarena.com/javapx/201305/8622.html

  messagelist.do - > messagelist.jsp

  用 messagelist.do?start=0 來顯示第一個頁面

  參數說明:http://www.cdtarena.com/ios/

  list:信息列表

  start:開始位置

  page:每頁顯示的信息數目

  previous:上頁開始位置

  next:下頁開始位置

  MessageListAction 裏的 perform 是這樣寫的:

  ------------------------------------------------------------------------------------

  int start = Integer.parseInt(request.getParameter("start"));

  System.out.println ("Start:" + start);

  int page = 4;

  // create a message list

  Message[] list = new Message[16];

  for (int i=0; i< list.length; i++){

  list[i] = new Message(i ,"message" + i);

  }

  request.setAttribute("list", list);

  request.setAttribute("start", new Integer(start));

  request.setAttribute("page", new Integer(page));

  // if there is a previous page, set the previous variable

  int previous = start-page;

  if ( previous >=0 ){

  request.setAttribute("previous", new Integer(previous));

  System.out.println ("previous:" + previous);

  }

  // if there is a next page, set the next variable

  int next = start+page;

  if ( next< list.length ){

  request.setAttribute("next", new Integer(next));

  System.out.println ("next:" + next);

  }

  return (mapping.findForward("success"));

  ------------------------------------------------------------------------------------

  下面是 messagelist.jsp 裏的內容:http://www.cdtarena.com/3g.html

  ------------------------------------------------------------------------------------

  < logic:iterate id="message" name="list" offset="start" length="page" >

  < br >< html:link

  paramId="id" paramName="message" paramProperty="id"

  page="/messagedetail.do" >

  < bean:write name="message" property="name" / >

  < /html:link >

  < /logic:iterate >

  < logic:present name="previous" >

  < br >< html:link

  paramId="start" paramName="previous"

  page="/messagelist.do" >

  上一頁

  < /html:link >

  < /logic:present >

  < logic:present name="next" >

  < br >< html:link

  paramId="start" paramName="next"

  page="/messagelist.do" >

  下一頁

  < /html:link >

  < /logic:present >

      http://www.cdtarena.com/class.html

       http://www.cdtarena.com/qrs.html

  ------------------------------------------------------------------------------------

  以此例子來說明 logic:iterate 在分頁裏的用法

  由於每次 messagelist.do 都會處理所有的 message,所以性能上還是可以再優化

  比如把 message 數組存放在 session 裏。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章