Struts2 でユーザー定義オブジェクト属性のリストを設定する際に問題が発生しています。
これが私の例です(ゲッター/セッターは省略されています):
public class Foo { プライベート文字列 attr1; プライベート文字列 attr2; }
public class Bar { private List foos; }
public class StrutsAction extends ActionSupport { private Bar bar; }
次のようにJSPにコードがあります(抜粋):
<tr><td><input type="text" name="bar.foos.attr1"/></td><td><input type="text" name="bar.foos.attr2"</td></tr>
<tr><td><input type="text" name="bar.foos.attr1"/></td><td><input type="text" name="bar.foos.attr2"</td></tr>
リスト内に各属性を持つ 1 つの foo アイテムを作成するには、各テーブル行が必要ですが、コードが渡されると、属性ごとに新しい foo オブジェクトが作成され、最終的に 2 つではなく 4 つの foo になります。
次のように、インデックスを html にハードコーディングすることで問題を解決できることを理解しています。
<tr><td><input type="text" name="bar.foos[0].attr1"/></td><td><input type="text" name="bar.foos[0].attr2"</td></tr>
<tr><td><input type="text" name="bar.foos[1].attr1"/></td><td><input type="text" name="bar.foos[1].attr2"</td></tr>
インデックスをハードコーディングせずに実行できるかどうか疑問に思っていましたか?