まず状況の説明から。
現在、MVCモデルを使って、jsp,sarvlet,beanの連携によるプログラムを作成しています
そこで、作成したテーブルを直接編集できるようにし、次いで編集した表を読み込んで更新をする
プログラムを作成中です。
表作成までの流れとしては、
Beanを使ってデータベースの情報を取得しリストにまとめる
↓
そのリストをjsp上でfor文を使って回し、テーブルを作成
↓
作成したテーブルのセルはテキストボックスになっており、直接編集可能
↓
編集された値を読み取り、データベースを更新する
となっております。
また、10行固定表示で、初期表示で10行にならなかった場合は
初期値のない行を10行まで出すようにしています。
以下は簡単な表のサンプルです。
lang
1<table class="Detail"> 2<%--項目部--%> 3 <thead class="DetailHead"> 4 <tr class="DetailHead" > 5 <td ROWSPAN="2" width="50">NO</td> 6 <td COLSPAN="2" width="150">AAAA</td> 7 <td ROWSPAN="2" width="100">BBB</td> 8 <td ROWSPAN="2" width="200">CCCCC</td> 9 </tr> 10 <tr class="DetailHead" > 11 <td width="75">DDD</td> 12 <td width="75">EEE</td> 13 </tr> 14 </thead> 15<%-- 表 --%> 16 <tbody class="DetailBody"> 17 <% for (Bean result : resultList) { %> 18 <% count++; %> 19 <% System.out.println(count); %> 20 <tr class="DetailManageBody" align="right" height="25"> 21 <td width="50"><input type='text' name="NO<%=count %>"value=<%=result.getNO()%> /></td> 22 <td width="75"><input type='text' name="DDD<%=count %>"value=<%=result.getDDD()%> /></td> 23 <td width="75"><input type='text' name="EEE<%=count %>"value=<%=result.getEEE()%> /></td> 24 <td width="100" align="center" > 25 <% if (result.getBBB() == 0) { %> 26 <input type="checkbox" id='checkoff'name="BBB<%=count %>" value="" > 27 <% }else { %> 28 <input type="checkbox" id='checkon' name="BBBl<%=count %>" value="" checked='checked'> 29 </td><% } %> 30 <td width="200"><input type='text' name="CCCCC<%=count %>"value=<%= result.getCCCCC() %> class=custom /></td> 31 </tr> 32 <% } %> 33 34 <% if(count < 10) { %> 35 <% for (int i = 1; i < 11 - count; i++) {%> 36 <tr class="DetailManageBody" align="right" height="25"> 37 <td width="50"><input type='text' name="NO<%=count + i%>" value=<%=count + i%> /></td> 38 <td width="75"><input type='text' name="DDD<%=count + i%>"value="" /></td> 39 <td width="75"><input type='text' name="EEE<%=count + i%>"value="" /></td> 40 <td width="100" align="center" ><input type="checkbox" id='checkoff'name="BBB<%=count + i%>" value="" ></td> 41 <td width="200"><input type='text' name="CCCCC<%=count + i%>"value="" /></td> 42 </tr> 43 <% } %> 44 <% } %> 45 </tbody> 46</table> 47
以上より、教えていだたきたいコード、または実現イメージは
①countが毎回違うのことに着目し、テキストボックスの名前にカウントを付けて名前がかぶらないようにしたうえで各セルの値を取得し、
②上記各セルの値をテーブル1行ずつ読み込みリストを作成する
③sql文に当てはめる
※!!後にセルごとにエラーチェックもしたい場合、この方法でできるのかも心配
以上になります。
自分ではなかなか調べがつかず、また詳しい実現方法がイメージできないので困っております。
また、このほか良い考えがありましたらアドバイス頂ければ幸いです。
よろしくお願いします。
あなたの回答
tips
プレビュー