sqlページングspringmvcとdisplaytag実装
ページングの原理
2つの部分の構成ページングナビゲーション情報 各ページのデータ問合せ文情報 この機能を実現するには、クエリーの情報が必要です.
1. 合計レコード数:resultSize 2.1ページあたりのレコード数:pageSize 3.現在のページ番号:pageIndex 4.総ページ数(表示が必要な場合)は、resultSize-1/pageSize+1で得られるページ内の属性です.
いずれの実装においても、上記の情報は備えていればよい.以下にdisplaytagラベルを使用します.DisplaytagはMVCモードに適した非常に使いやすい表表示ラベルです.ホームページはhttp://displaytag.sourceforge.netです.
sqlのページングpageIndex=(pageIndex-1)*pageSize
1. mysql limitの使用
2. oracle rownumの使用
インタフェース実装
1. ページ番号jspを表示
説明tableの属性name=「userList」はレコードセットをセッションまたはrequestのキー値pagesize=「10」に存在し、各ページに10個のデータsort=「external」外部ソートid=「row」表id値を表示し、プログラムに関連するパラメータpartialList=「true」セグメントデータベースからデータを読み出すcolumnのプロパティautolink=「true」自動生成リンクemailまたはurl他のプロパティは、持参した例を参照してください.
2. controller (user.do) springmvc
上はspringmvcを用いて実装されており,他の実装は類似している.
2つの部分の構成
1. 合計レコード数:resultSize 2.1ページあたりのレコード数:pageSize 3.現在のページ番号:pageIndex 4.総ページ数(表示が必要な場合)は、resultSize-1/pageSize+1で得られるページ内の属性です.
いずれの実装においても、上記の情報は備えていればよい.以下にdisplaytagラベルを使用します.DisplaytagはMVCモードに適した非常に使いやすい表表示ラベルです.ホームページはhttp://displaytag.sourceforge.netです.
sqlのページングpageIndex=(pageIndex-1)*pageSize
1. mysql limitの使用
select * from users limit pageIndex, pageSize
2. oracle rownumの使用
select * from (
select a.*, rownum num from (
select * from users order by name desc) a
where rownum <= (pageSize + pageIndex) )
where num >= pageIndex
インタフェース実装
1. ページ番号jspを表示
<%@ taglib prefix="display" uri="http://displaytag.sf.net/el" %>
<display:table name="userList" pagesize="10" requestURI="user.do" sort ="external"
id ="row" partialList ="true" size ="resultSize">
<display:column property ="userid" title =" "/>
<display:column property ="username" title =" "/>
<display:column property ="email" autolink="true" title =" "/>
<display:column title=" ">
<a href="user.do?action=delete&id=<c:out value="${row.userid}"/>"> </a>
</display:column>
</display:table>
説明tableの属性name=「userList」はレコードセットをセッションまたはrequestのキー値pagesize=「10」に存在し、各ページに10個のデータsort=「external」外部ソートid=「row」表id値を表示し、プログラムに関連するパラメータpartialList=「true」セグメントデータベースからデータを読み出すcolumnのプロパティautolink=「true」自動生成リンクemailまたはurl他のプロパティは、持参した例を参照してください.
2. controller (user.do) springmvc
Map model = new HashMap();
//
String pageIndexName = new ParamEncoder("row")
.encodeParameterName
(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE);
//
int pageSize = 10;
//
int pageIndex = LotteryUtil.isEmpty(request.getParameter(pageIndexName)) ? 0 :
(Integer
.parseInt(request.getParameter(pageIndexName)) - 1);
//
int resultSize = userService.getAllUserCount();
//
List<User> userList = userService.getUsers(pageIndex, pageSize);
model.put("resultSize", resultSize);
model.put("userList", userList);
return new ModelAndView("userList", model);
上はspringmvcを用いて実装されており,他の実装は類似している.