• 締切済み

1ページに10件ずつ表示したい

1ページに10件ずつ表示したいのですが、1回目「次のページ」ボタンを押すと 11件目から表示しますが、2回目「次のページ」ボタンを押しても、 21件目から表示せず、再び11件目から表示します。 どこがおかしいか、どなたかご指摘お願い致します。 「最初の10行を表示するServlet」 public class hoge extends HttpServlet{ private static final long serialVersionUID = 1L; public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try{ request.getSession().invalidate(); CatalogDAO dao = new CatalogDAO(); List<Product> list = dao.getProductList(); request.getSession(true).setAttribute("products",list); table = new ArrayList<Object>(); OffsetBean offsetBean = new OffsetBean(); offsetBean.setStr(0); table.add(offsetBean); request.getSession(true).setAttribute("object1", table); }catch(Exception e){ throw new ServletException(e); } getServletContext().getRequestDispatcher("catalog.jsp").forward(request,response); } private List<Object> table; public List<Object> getTable() { return table; } } 「catalog.jsp」 <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:forEach var="var2" items="${object1}"> <table> <tr bgColor=#bb5a5a> <th><font color=#ffffff>番号</font></th> <th><font color=#ffffff>商品名</font></th> <th><font color=#ffffff>価格</font></th> <th><font color=#ffffff></font></th> </tr> <c:forEach var="var" items="${products}" begin="${var2.str}" end="${var2.str + 9}"> <tr bgColor=#fddddd> <td align="center" width="40"><c:out value="${var.id}" /></td> <td width="290"><c:out value="${var.name}" /></td> <td align="right" width="70"><c:out value="${var.price}" />円</td> <td> <form method="post" action="/book/catalog/CatalogDetailShow"> <input type="hidden" name="id" value="${var.id}"/> <br><input type="submit" name="submit" value="詳細"/> </form> </td> </tr> </c:forEach> </table> <c:if test="${var2.str >= 0}"> <c:if test="${var2.str < products.size() - products.size()%10 }"> <form method="post" action="/book/catalog/NextPage"> <input type="submit" name="submit" value="次のページ"/> </form> </c:if> </c:if> <c:if test="${var2.str > 9}"> <form method="post" action="/book/catalog/BackPage"> <input type="submit" name="submit" value="前のページ"/> </form> </c:if> </c:forEach> 「次の10行を表示するServlet」 public class NextPage extends HttpServlet { private static final long serialVersionUID = 1L; public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try{ OffsetBean offsetBean= new OffsetBean(); offsetBean.setStr(offsetBean.getStr() + 10); table = new ArrayList<Object>(); table.add(offsetBean); request.getSession(true).setAttribute("object1", table); }catch(Exception e){ throw new ServletException(e); } getServletContext().getRequestDispatcher("catalog.jsp").forward(request,response); } private List<Object> table; public List<Object> getTable() { return table; } } 「Bean・・・OffsetBean.java」 public class OffsetBean { private int str; public void setStr(int str) { this.str = str; } public int getStr() { return this.str; } }

  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

noname#147388
noname#147388
回答No.1

ソースみてないけど offset みてみ。

関連するQ&A

  • オブジェクトの中のプロパティを認識できません

    javax.el.PropertyNotFoundException: Property 'id' not found on type java.lang.Stringをいうアラームが消えません。 どなたか<c:out value="${var5.id}"/>を表示する方法を教えて下さい。 「hoge.jsp」 <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:if test="${itemSize != 0}"> <table border="0" > <c:forEach var="var5" items="table"> <tr> <td width="30" ><c:out value="${var5.id}"/></td> <td width="210"><c:out value="${var5.name}"/></td> <td width="50" ><c:out value="${var5.price}"/></td> <td width="50" ><input type="text" name="count" value="1" size="3"/></td> </tr> </c:forEach> </table> 「hoge.java」 public class hoge extends HttpServlet{ private static final long serialVersionUID = 1L; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("Windows-31J"); int id = 0; String name = null; int price = 0; try{ table3 = new ArrayList<Object>(); id = Integer.parseInt(request.getParameter("id")); name = request.getParameter("name"); price = Integer.parseInt(request.getParameter("price")); hogeBean hoge = new hogeBean(); hoge.setId(id); hoge.setName(name); hoge.setPrice(price); table3.add(hoge); request.getSession().setAttribute("table", table3); }catch(Exception e){ throw new ServletException(e); } getServletContext().getRequestDispatcher("/hoge.jsp").forward(request,response); } private List<Object> table3; public List<Object> getTable3() { return table3; } } 「hogeBean.java」 public class hogeBean{ private int id; public int getId(){ return id; } private String name; public String getName(){ return name; } public void setName(String name){ this.name = name; } public void setId(int id){ this.id = id; } private int price; public int getPrice(){ return price; } public void setPrice(int price){ this.price = price; } }

    • ベストアンサー
    • Java
  • 空のテーブルを表示させたい

    DBから検索条件に当てはまるデータを全て読み込み、 特定の内容だけ表のように表示させるプログラムを作成しています。 ほとんど作成し終わったのですが、項目の中のデータが空だと表の枠(?)を表示してくれず、空白になってしまいます。 それでは見た目が悪いので、なんとかExcelのような表にしたいのですが、やり方がわかりません。 どなたか教えていただけないでしょうか? ○開発環境 ・OS:WindowsXP Professional ・ツール:Microsoft InterDev6.0 ・DB:SQLServer2000 ○ソース(表示部分のみ) 該当データ数 <%=objRS.RecordCount%><br> <% Response.Write"<input type=""submit"" id = ""Indication1"" value=""表示する"" name=""Indication"">" %> <br> <table border="1" width="100%"> <tr> <th scope="col" bgcolor="#ccffff"></th> <th scope="col" bgcolor="#ccffff"><font size="2">入力番号</font></th> <th scope="col" bgcolor="#ccffff"><font size="2">日付</font></th> <th scope="col" bgcolor="#ccffff"><font size="2">名前</font></th> </tr> <% '***** 検索されたデータの表示 ***** Do Until ObjRS.EOF %> <tr> <td scope="col"> <% Response.Write"<input type=""radio"" value=""" & ObjRS("no")& """ name=""Check"">" %> </td> <td scope="col"><%=ObjRS("no")%></td> <td scope="col"><%=ObjRS("date")%></FONT></td> <td scope="col"><%=ObjRS("name")%></FONT></td> </tr> <% ObjRS.MoveNext LOOP %> </table>

  • セレクトボックスの内容を次のページで受け取る方法

    <form action="./check.asp" method="POST"> <table> <tr> <td> <select name="year"> <option value="2006" >2006</option> <option value="2007" >2007</option> <option value="2008" >2008</option> </select> </td> </tr> <tr> <td align="center"><input type="submit" value="確認する"></td> </tr> </table> </form> として 次のページで YEAR =Trim(request("year")) Response.Write YEAR で受け取り表示しようとしていますが取れません。なぜですか?教えてください

  • JavaScriptでの配列表示の表示制御

    Javaの配列をJSPでテーブルに表示する際に、 配列の最初の要素(1つ)だけを表示して、 残りの要素はデフォルト非表示にしたいです。 「開く」ボタンを押下すると、配列の残りの要素を表示する、 というような作りにしたいのですが JavaScript部分をどう書いたら実装できるかがわかりません。 今現在、全表示時で下のような感じです。 ご教授お願い致します。 似たようなページがありましたらお教え頂けると幸いです。 <table> <tr> <th>配列</th> </tr> <c:forEach items="${配列型}" var="あ"> <tr> <td><c:out value="${あ.中身}" /></td> </tr> </c:forEach> </table> <input type="submit" value="開く" onclick="toOpen()"></input>

  • DOM追加時に表示されるが自動削除(?)される

    まず、初心者な質問すみません。 現在、Monacaを利用してAndroid/iPhone/iPad用のアプリを作成しています。 仕様として動的セレクトボックスで名称とLvを選択後、 押下時に画面下の一覧テーブルに行を追加する追加ボタンを作成しようとしています。 そこでDOMでテーブルの最終行に行追加を行い、セルの1つ目、2つ目、3つ目についてセル追加及び、内容の編集を行い、処理を確定させています。しかし、プレビューやAndroid版デバッガ等で確認すると、画面上で一瞬一覧テーブルに追加された後、更新の様なものがかかり、テーブルが元のヘッダーしかない状態になります。 この更新の様なものの発生を止める方法、 更新の様なものが必ず発生するのであればテーブルの情報が消えてしまうのを回避する方法、 について教えていただきたく。 --本文---- <head> <meta charset="shift-JIS"> <script src="plugins/plugin-loader.js"></script> <link rel="stylesheet" href="plugins/plugin-loader.css"> <script> // Set virtual screen width size to 320 pixels monaca.viewport({width: 320}); </script> <script type="text/javascript" language="JavaScript"> <!-- var abbility_Kind = new Array("all", "1", "2"); var abbility_Name = new Array(); abbility_Name["all"] = new Array("a","b","c","d"); abbility_Name["1"] = new Array("a","c","d"); abbility_Name["2"] = new Array("b"); var abbility_Lv = new Array(); abbility_Lv["a"] = new Array(1,2,3,4,5,6,7); abbility_Lv["b"] = new Array(1,2,3,4,5,6,7); abbility_Lv["c"] = new Array(1,2,3,4,5); abbility_Lv["d"] = new Array(1,2,3,4,5,6); function addSelOption(selObj, myValue, myText){ selObj.length++; selObj.options[ selObj.length - 1].value = myValue ; selObj.options[ selObj.length - 1].text = myText; } function createSelection(selObj, midashi, aryValue, aryText){ selObj.length = 0; addSelOption(selObj, midashi, midashi); for(var i=0; i < aryValue.length; i++){ addSelOption (selObj , aryValue[i], aryText[i]); } } function selectkind(obj){ createSelection(hoge.elements['name'], "", abbility_Name[obj.value], abbility_Name[obj.value]); } function selectname(obj){ createSelection(hoge.elements['level'], "", abbility_Lv[obj.value], abbility_Lv[obj.value]); } var i = 1; var maxAbbility = 10; function add(){ i++; var table1 = document.getElementById("needBody"); var row1 = table1.insertRow(-1); var cell1 = row1.insertCell(0); var cell2 = row1.insertCell(1); var cell3 = row1.insertCell(2); cell1.setAttribute("class","chk"); cell2.setAttribute("class","num"); cell3.setAttribute("class","name"); cell1.className = 'chk'; cell2.className = 'num'; cell3.className = 'name'; var HTML1 = '<input type="checkbox" name="chk' + i + '" value="' + i + '">'; cell1.innerHTML = HTML1; cell2.appendChild(document.createTextNode(new String(i))); cell3.appendChild(document.createTextNode(new String(hoge.elements['name'].value + hoge.elements['level'].value))); } --> </script> </head> <body> <font size="4px">構成</font> <form name="hoge"> <table> <tr><td>種類</td> <td></td> <td><select name="kind" onChange="selectkind(this)"> <option value="all">all</option> <option value="1">1</option> <option value="2">2</option> </select></td> </tr> <tr><td>名称</td> <td><font color="red">(※)</font></td> <td><select name="name" onChange="selectname(this)"> <option value=""></option> <option value="a">a</option> <option value="b">b</option> <option value="c">c</option> <option value="d">d</option> </select></td> </tr> <tr><td>Lv</td> <td><font color="red">(※)</font></td> <td><select name="level"></select></td> </tr> </table> <button type="submit" name="btnAdd" onClick="add()">追加</button> <font>一覧</font> <table border="1px"> <tbody id="needBody"> <tr> <th>&nbsp;</th> <th>#</th> <th>解放スキル</th> </tr> </tbody> </table> </form> </body> ----------

  • フォームで確認画面を表示させるにはどうすればいいのでしょうか?

    質問をご覧下さりありがとうございます。 <form action="18add.php" method="POST" name="form1"> <table> <tr> <th>番号(半角数字)</th> <td><input type="text" name="number" value=""></td> </tr> <tr> <th>名前</th> <td><input type="text" name="name" value=""></td> </tr> <tr> <td><input type="hidden" name="mode" value="add"></td> <td><input type="submit" name="submit" value="追加"></td> </tr> </table> </form> htmlでこんなフォームを作り、phpで $table_body = ""; if( isset( $_POST['mode'] ) ){ $mode = $_POST['mode']; $number = $_POST['number']; $name =$_POST['name']; } else{ $mode = ""; $number = ""; $name = ""; } if( $mode == "add" ){ $table_body .= "<tr>"; $table_body .= "<td>"; $table_body .= $number; $table_body .= "</td>"; $table_body .= "<td>"; $table_body .= mb_convert_encoding( $name, "SJIS", "EUC-JP" ); $table_body .= "</td>"; $table_body .= "</tr>"; } で一度入力された情報を確認する画面を作りたいのですが うまくいきません。 初心者なのでわかりやすく説明をつけてくださると大変助かります。

    • 締切済み
    • PHP
  • 表の作成

    いつもお世話になっています。 下記の構文で表を作成した際に、セルの幅がずれてしまいます。 <TABLE border="1" cellspacing="0" width="940"> <TBODY> <TR> <TH height="17" width="790" colspan="5">A</TH> <TH height="17" width="75" rowspan="2">G</TH> <TH height="17" width="75" rowspan="2">H</TH> </TR> <TR> <TH height="17" width="150">B</TH> <TH height="17" width="80" >C</TH> <TH height="17" width="220">D</TH> <TH height="17" width="280">E</TH> <TH height="17" width="60" >F</TH> </TR> </TBODY> </TABLE> <TABLE border="1" cellspacing="0" width="940"> <COLGROUP> <col width="150"> <col width="80" > <col width="220"> <col width="280"> <col width="60" > <col width="75" > <col width="75" > </COLGROUP> <TBODY> <TR height="30"> <TD><FONT SIZE="-1">○</FONT></TD> <TD><FONT SIZE="-1">×</FONT></TD> <TD><FONT SIZE="-1">△</FONT></TD> <TD><FONT SIZE="-1">□</FONT></TD> <TD><FONT SIZE="-1">◆</FONT></TD> <TD align="center"> <INPUT type="button" value="◎" style="width:55px;height:27px" onClick=""> <!-- ж --> </TD> <TD align="center"> <INPUT type="button" value="Δ" style="width:55px;height:27px" onClick=""> <!-- ☆ --> </TD> </TR> </TBODY> </TABLE> どなたか解決方法を教えていただけないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 1ページで2つのフォームをチェックしたいのですが…

    1つのページに同じ項目のフォームを2つ作りました。 そしてそれにチェックを設けたいと思いフォームチェックのスクリプトを入れてみました。 が、しかし、、 上のフォームはチェックが動くのですが、 下のフォームは何を入れてもチェックがエラー検出をして 次のページに進めなくなってしまいます。。 こちらはどのようにしたら両方のチェックが働きつつ 次のページに値を渡せるのでしょうか? 正しい書き方を教えてください。 よろしくお願いします。 <html> <head> <script language="JavaScript"> <!-- // 入力チェック function chkInputForm() { Error = new Array(); i = 0; // お客様の業種入力チェック if (document.forms[0].elements["part"].selectedIndex == 0) { Error[i] = "[ 1・2の選択 ] は必須項目です。"; i++; } // 会社(事務所)のご住所入力チェック if (document.forms[0].elements["pref"].selectedIndex == 0) { Error[i] = "[住まい] は必須項目です。"; i++; } // 未入力があればアラート if (Error.length > 0) { ErrorText = Error.join("\n"); alert ("以下の項目は必須です。\n\n"+ErrorText); return false; } return true; } //--> </script> </head> <body> <form action="inquiry.php" method="post" onsubmit="return chkInputForm()"> <table class="table" summary="お問合せテーブル"> <tbody><tr> <th>1か2</th> <td> <select name="part" style="width: 200px;"> <option value="0">---ご選択下さい---</option> <option value="1">1</option> <option value="2">2</option> </select> </td> </tr> <tr> <th>住まいは</th> <td> <select name="pref" style="width: 200px;"> <option value="0">---ご選択下さい---</option> <option value="1">日本</option> <option value="2">海外</option> </select> </td> </tr> </tbody></table> <input class="iepng" name="button" value="送信" type="submit"> </form> <form action="inquiry.php" method="post" onsubmit="return chkInputForm()"> <table class="table" summary="お問合せテーブル"> <tbody><tr> <th>1か2</th> <td> <select name="part" style="width: 200px;"> <option value="0">---ご選択下さい---</option> <option value="1">1</option> <option value="2">2</option> </select> </td> </tr> <tr> <th>住まいは</th> <td> <select name="pref" style="width: 200px;"> <option value="0">---ご選択下さい---</option> <option value="1">日本</option> <option value="2">海外</option> </select> </td> </tr> </tbody></table> <input class="iepng" name="button" value="送信" type="submit"> </form> </body> </html>

  • javascript で undefinedと表示されます

    全ての変数、配列に alert(typeof variable); を試しましたが undefinedが見つかりません。 function a{ var lastdayArray = new Array ('','31','28','31','30','31','30','31','31','30','31','30','31'); var weekArray = new Array ('日','月','火','水','木','金','土'); var a = new Date(); var b = new Date(); var mymonth = a.getMonth()+1; var nextmonth =mymonth +1 ; var myyear = a.getYear()+1;   var today = a.getDate(); var maxbox = 36; var sday = a.setDate(1); var nday = b.setDate(1); var nmonth = b.setMonth(mymonth); var nwday = b.getDay(); var fwk = a.getDay(); var nfday = 6 - nwday; var fline = 6 - fwk; var nextlsday = lastdayArray[mymonth]; var lsbox = (fwk + lastdayArray[mymonth]) +1; var monthArray = new Array(mymonth,nextmonth); var monthflg = new Array(fwk,nfday); var nextflg = new Array(fline,nwday); var s_no0 = 1;   var s_no1 = 1; //数値代入変数       var s_no2 = 1; var s_no3 = 0; var s_no4 = 0; var s_no5 = 0; var s_no6 = 0; var s_no7 = 0; var s_no8 = 0; var schedule_no = new Array(s_no0,s_no1,s_no2,s_no3,s_no4,s_no5,s_no6,s_no7,s_no8); var s_str0 = 'a'; var s_str1 = 'a'; //文字列代入変数 var s_str2 = 'a'; var s_str3 = 'a'; var s_str4 = 'a'; var s_str5 = 'aa'; var s_str6 = 'a'; var s_str7 = 'a'; var s_str8 = 'a'; var schedule_str = new Array(s_str0,s_str1,s_str2,s_str3,s_str4,s_str5,s_str6,s_str7,s_str8); for(var x = 0; x < 2; x++){ daycount = 0; document.write(monthArray[x] + '月の予定'); if(nmonth == 12){nmonth = 0;} document.write('<table width="73%" height="337" border="1" cellpadding="1" cellspacing="1">'); //曜日出力 document.write('<tr>'); for(var l = 0 ; l <= 6; l ++){ if(l == 0){ weekArray[l] = (weekArray[l].fontcolor('#ff1493').fontsize(4)); } else if(l == 6){ weekArray[l] = (weekArray[l].fontcolor('#87ceeb').fontsize(4)); } document.write('<td>' + weekArray[l] +'</td>');} document.write('</tr>'); //曜日を判定しテーブル出力 document.write('<tr>'); //空ボックス出力 if((monthflg[x]) != 6 ){ for(var k = 0; k < (monthflg[x]); k++){ document.write('<td>' + '&nbsp;' +'</td>'); } } if((monthflg[x]) == 0){ for(var y = 0; y < 6 ; y++){ document.write('<td>' + '&nbsp;' +'</td>'); } if((schedule_no[y]) === daycount){ daycount ++; document.write('<td>' + daycount + schedule_str[y] +'</td>'); } else { daycount ++; document.write('<td>' + daycount +'</td>'); } } else{ //空ボックスの数~土曜日まで出力 for(var m =0 ; m <= nextflg[x]; m++){ if((schedule_no[m]) === daycount){ daycount ++; document.write('<td>' + daycount + schedule_str[m] +'</td>'); } else { daycount ++; document.write('<td>' + daycount +'</td>'); } } } document.write('</tr>'); //行出力 for(var i =0 ; i < 4; i++){ document.write('<tr>'); //列出力 for(var j =0 ; j < 7; j++){ if(daycount < lastdayArray[monthArray[x]]){ daycount ++; document.write('<td>' + daycount +'</td>'); } else{ document.write('<td>' + '&nbsp;' +'</td>'); } } document.write('</tr>'); } //最終行出力 if(daycount < lastdayArray[monthArray[x]]){ document.write('<tr>'); for(var p =0 ; p < 7 ; p++){ if(daycount < lastdayArray[monthArray[x]]){ if((schedule_no[p]) === daycount){ daycount ++; document.write('<td>' + daycount + schedule_str[p] +'</td>'); } else { daycount ++; document.write('<td>' + daycount +'</td>'); } } else{ document.write('<td>' + '&nbsp;' +'</td>'); } } document.write('</tr>'); } document.write('</table>'); } }

  • jsp 通販サイト作成での質問

    jspを使い通販サイトを作成しています 「session.jsp」では商品の選択をし選んだ商品をsessionを用いて 次のページの「cart.jsp」で表示するというものなのですが 「session.jsp」の下部で、カートに入れる のボタンを押した数に応じて 選んだ商品の数を表示するものを作ったのですが上手くカウントできていません size()を使い商品数を表示したいのですが上手くいきません どなたかよろしくお願いします <%@ page contentType="text/html;charset=Shift_JIS"%> <%@ page import= "java.util.ArrayList" %> <%@ page session="true" %> <% request.setCharacterEncoding("Shift_JIS"); String[] Price = {"4000","2500","500","3000","1500"}; String[] Name ={"たらばがに","毛ガニ","いか","うに","あわび"}; String[] Img ={"taraba.gif","ke.gif","ika.gif","uni.gif","awabi.gif"}; String message =""; String abc =""; String selectValues=request.getParameter("select"); String[] array=new String[3]; if(selectValues !=null){ array[0]=Name[Integer.parseInt(selectValues)]; array[1]=Price[Integer.parseInt(selectValues)]; array[2]=Img[Integer.parseInt(selectValues)]; ArrayList<String> i = new ArrayList<String>(); i.add(selectValues); //ここが問題点です abc="かごの中身は"+i.size()+"個です"; }else{ abc="商品を入れてください"; } %> <center><h1>海産物ショッピング</h1></center> <html> <head> <title>海産物ショッピング</title> </head> <body> <div align="center"> <hr> <form action="session.jsp"> <table border ="1"> <tr><th>たらばがに</th><th><img src="img/taraba.gif"></img></td></th><td>¥4000円<input type ="hidden" name=select value="0"><input type="submit" name=keyword value="カートに入れる"></input></td> </form> <form action="session.jsp"> </tr><tr><th>毛ガニ</th><th><img src="img/ke.gif"></img></td></th><td>¥2500円<input type ="hidden" name=select value="1"><input type="submit" name=keyword value="カートに入れる"></td></tr> <tr><th>いか</th><th><img src="img/ika.gif"></img></td></th><td>¥500円<input type ="hidden" name=select value="2"><input type="submit" name=keyword value=" カートに入れる"></td></tr> <tr><th>うに</th><th><img src="img/uni.gif"></img></td></th><td>¥3000円<input type ="hidden" name=select value="3"><input type="submit" name=keyword value="カートに入れる"></td></tr> <tr><th>あわび</th><th><img src="img/awabi.gif"></img></td></th><td>¥1500円<input type ="hidden" name=select value="4"><input type="submit" name=keyword value="カートに入れる"></td></tr> </table><br> </form> <table border ="1"> </table><br> <%=message %> <%=abc %> <hr> </div> </body> </html>

    • ベストアンサー
    • Java