※ ChatGPTを利用し、要約された質問です(原文:ページング処理について)
ページング処理について
このQ&Aのポイント
ArrayListを使った一覧表示にページング処理を追加したい。DBの内容を10件ごとに表示し、BackとNextのリンクで画面を移動する。次に表示する10件がない場合はリンクを非表示にしたい。
Servletでボタンがクリックされたら、list.jspに遷移してデータを10件ずつ表示する。セッションに情報を保持する。
list.jspでは、セッションからデータを取得してテーブルに表示する。変数iを使って5件まで表示し、BackとNextのボタンを追加する。しかし、次に表示すると同じ情報が保持されたままになってしまう。前後の情報を格納する方法についてアドバイスを求めている。
http://okwave.jp/qa/q6410907.html
以前↑の内容を投稿したものです。
解決に至らなかった為、再投稿させて頂きます。
ArrayListに格納する方法を使って一覧表示に
ページング処理を加えたいのですが、その方法がよく分からず頭を抱えています。
期待する結果は以下の通りです。
(1)DBの内容を10件ごとに表示し、「Back」「Next」のリンクを使って画面を移動する。
(2)次(もしくは前)に表示する10件がない場合は上記のリンクを非表示としたい。
下記はソースの一部です。
**Srvlet**
if(button != null && button.equals("一覧")){
target = "/list.jsp";
CList cList = new CList();
List list = cList.list();
HttpSession. session=request.getSession();
session.setAttribute("SELECT", list);
}
**JSP**
//省略//
<BODY>
<BR>
<%
ArrayList array = (ArrayList)session.getAttribute("SELECT");
for(int i=0 ; i<array.size() ; i++){
Bean bean = (Bean)array.get(i);
%>
<TR>
<TD><INPUT type="radio" name="radio" value="<%= (int)bean.getId() %>" <%=
bean == array.get(0) ? "checked" : ""%>></TD>
<TD><%= (int)bean.getId() %></TD>
<TD><%= (String)bean.getName() %></TD>
<TD><%= (String)bean.getTel() %></TD>
</TR>
<%
if(i==4){
break;}
%>
<%} %>
</TABLE>
</TD>
</TR>
</TABLE>
</FORM>
</DIV>
<a href="list.jsp?list=1">
<font color="#0000ff"><b>Back</b></font></a>
<a href="list.jsp?list=2">
<font color="#0000ff"><b>Next</b></font></a>
変数iをbreakすることで5件までの表示に成功しました。
情報を記憶出来ているとは思うのですが
NEXT・BACKに飛ぶと同じ情報が保持されたままとなっています。
何か前後の情報を格納しないと期待する処理は行われないと思うのですが、
その部分でまた詰まってしまいました・・・。
アドバイス等御座いましたらお願いいたします。
お礼
逆になってますね。 申し訳ありません、自分の記述ミスです・・・。 shiren2さんのアドバイスを元にあれから試行錯誤した結果、 無事にページング処理が出来るようになりました! 本当に有難うございました。 何かありましたら、また宜しくお願い致します。