「Struts ActionFormのListに入力データを格納する方法」の編集履歴(バックアップ)一覧はこちら
「Struts ActionFormのListに入力データを格納する方法」(2006/08/01 (火) 18:29:20) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<p>
明細一覧に入力フィールドを作成し、同じ項目を複数登録する時、ActionFormのArrayListにIOできると便利。<br>
ArrayListの要素は自作のClassのインスタンスが使用可能。<br>
<br></p>
<hr>
<p><strong>[Java]</strong><br>
public class Detail{<br>
String detailField1="abcdefg" ;<br>
//getter & setter ・・・<br>
}<br>
<br>
public class MyAction(...){<br>
...<br>
ArrayList al = new ArrayList();<br>
<br>
al.add(new Detail()); //必要な数だけ繰り返す<br>
al.add(new Detail());<br>
al.add(new Detail());<br>
<br>
myForm.set("detail", al);<br>
}</p>
<p><strong>[JSP]<br></strong><logic:iterate id="detail" name="myForm"
property="detail" ><br>
<html:text name="detail" property="detailField1" indexed="true"/><br>
</logic:iterate><br>
<br>
<strong>[出力]</strong><br>
<input type="text" name="detail[1].detailField1" value="abcdefg" /><br>
<input type="text" name="detail[2].detailField1" value="abcdefg" /><br>
<input type="text" name="detail[3].detailField1" value="abcdefg" /><br>
<br>
<br>
<strong>[おまけのJS]<br></strong>function getListObject(list, field,
index){<br>
return document.forms[0].elements[list+"[" + index + "]." + field ];<br>
}<br></p>
<hr>
<p>注意点</p>
<p>
・logic:iterateのid(html:textのnameでもある)とActionFormのListの変数を同じ名前にする。<br>
・indexedをtrueにする。<br>
・あらかじめリストに必要な数だけ要素を追加しておく</p>
<br>
<p>参考</p>
<p><a href=
"http://civic.xrea.jp/2006/06/09/struts-using-list/">http://civic.xrea.jp/2006/06/09/struts-using-list/</a></p>
<br>
<p>
明細一覧に入力フィールドを作成し、同じ項目を複数登録する時、ActionFormのArrayListにIOできると便利。<br>
ArrayListの要素は自作のClassのインスタンスが使用可能。<br>
<br></p>
<hr>
<p><strong>[Java]</strong><br>
public class Detail{<br>
String detailField1="abcdefg" ;<br>
//getter & setter ・・・<br>
}<br>
<br>
public class MyAction(...){<br>
...<br>
ArrayList al = new ArrayList();<br>
<br>
al.add(new Detail()); //必要な数だけ繰り返す<br>
al.add(new Detail());<br>
al.add(new Detail());<br>
<br>
myForm.set("detail", al);<br>
}</p>
<p><strong>[JSP]<br></strong><logic:iterate id="detail"
name="myForm"property="detail" ><br>
<html:text name="detail" property="detailField1" indexed="true"/><br>
</logic:iterate><br>
<br>
<strong>[出力]</strong><br>
<input type="text" name="detail[0].detailField1" value="abcdefg" /><br>
<input type="text" name="detail[1].detailField1" value="abcdefg" /><br>
<input type="text" name="detail[2].detailField1" value="abcdefg" /><br>
<br>
<br>
<strong>[おまけのJS]<br></strong>function getListObject(list,
field,index){<br>
return document.forms[0].elements[list+"[" + index + "]." + field ];<br>
}<br></p>
<hr>
<p>注意点</p>
<p>
・logic:iterateのid(html:textのnameでもある)とActionFormのListの変数を同じ名前にする。<br>
・indexedをtrueにする。<br>
・あらかじめリストに必要な数だけ要素を追加しておく</p>
<br>
<p>参考</p>
<p><a href=
"http://civic.xrea.jp/2006/06/09/struts-using-list/">http://civic.xrea.jp/2006/06/09/struts-using-list/</a></p>
<br>
表示オプション
横に並べて表示:
変化行の前後のみ表示: