http://oshiete.goo.ne.jp/qa/6410907.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に飛ぶと同じ情報が保持されたままとなっています。
何か前後の情報を格納しないと期待する処理は行われないと思うのですが、
その部分でまた詰まってしまいました・・・。
アドバイス等御座いましたらお願いいたします。
No.2ベストアンサー
- 回答日時:
ANo. 1です。
>NextもBackも表示されなくなってしまいました。
失礼、比較演算子が間違えていました。
これで正しく動くと思います。
大変失礼しました。
f(0 < page){
// Backを表示
}
if((page+1)*10 <= array.size()){
// Nextを表示
}
ちなみに、補足で書かれたコードはNextとBackが逆になっている(間違えている)のでご注意ください。
逆になってますね。
申し訳ありません、自分の記述ミスです・・・。
shiren2さんのアドバイスを元にあれから試行錯誤した結果、
無事にページング処理が出来るようになりました!
本当に有難うございました。
何かありましたら、また宜しくお願い致します。
No.1
- 回答日時:
JSPは専門外ですが…。
arrayに全データが保持されているとして、forでi=0から毎度やり直せば、先には進まないのではと思います(0 .. 4までを毎回繰り返す)。
下記のような流れになると思います。
String str = request.getParameter("list");
int page = (str != null ? Integer.parseInt(str) : 0);
for(int i=page*10; i<array.size() ; i++){
...
>(2)次(もしくは前)に表示する10件がない場合
if(0 < page){
// Backを表示
}
if(array.size() < page*10){
// Nextを表示
}
見当違いなら申し訳ありません。
この回答への補足
アドバイス有難うございました!
ご意見を参考に以下のソースに作り替えてみました。
**JSP**
(先日のif文の下に作成しました)
<%
String str = request.getParameter("list");
int paging = (str != null ? Integer.parseInt(str) : 0);
for(int i=paging*10; i<array.size() ; i++){
Bean bean2 = (Bean)array.get(i);
%>
<%if(0 < paging){ %>
<a href="/webapp/control?list=1">
<b>NEXT</b></font></a>
<%} %>
<%if(array.size() < paging*10){ %>
<a href="/webapp/control?list=6">
<b>BACK</b></font></a>
<%}%>
<%} %>
</BODY>
**Servlet**
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
try{
request.setCharacterEncoding("Windows-31J");
String list = request.getParameter("list");
しかし、実行してみると先頭の10件のみが表示され、NextもBackも表示されなくなってしまいました。
(実際にはDB内には12件入っております。)
デバッグで値を確認してみたところ、Paging内が0のままになってしまっているようです。
申し訳ありませんが、ご教授お願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スカラーのベクトル微分
-
Perlで重複行を削除したい
-
C言語 最大値と最小値を求めて...
-
C言語の配列をPush(追加)する...
-
PHPのセレクトボックスの初期値...
-
MySQLのデータをPHPで多次元...
-
構造体を動的に確保&解放
-
【PHP】チェックボックスの必須...
-
pythonのnumpyでの繰り返しでの...
-
行列
-
一度に複数の値を取得できる乱...
-
sizeof
-
Pager::factory()の使い方がわ...
-
特定の文からメールアドレスの...
-
System.String.Splitでエラー
-
PHPとMySQLで100万件のデータを...
-
Texでの数式
-
MYSQLとPHPによって取得する多...
-
PHPでDBの複数行更新について
-
配列を指定した順序でソート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スカラーのベクトル微分
-
STLのvectorで作った配列をメン...
-
特定の文からメールアドレスの...
-
配列の要素(value)に、変数を...
-
読み(あ行~わ行)ごとに分け...
-
ファイルの書き込みについて教...
-
verilogで、配列の一部をタスク...
-
CArrayの要素としてCStringArra...
-
pythonのnumpyでの繰り返しでの...
-
C言語の配列をPush(追加)する...
-
php キーソート キーが重複した...
-
CArrayのソート
-
【PHP】配列のキー名の修正は可...
-
多次元配列をエンコードする関...
-
PHPは何故値渡しより参照渡しの...
-
cakephpでのトランザクション処...
-
pg_copy_fromの使い方について...
-
array_intersectで空欄を比較し...
-
濁点のソート
-
配列中のあるキー、値を取得し...
おすすめ情報