iterateタグのidとpropertyは同じ名前にしましょう。
iterateタグのid属性とproperty属性の名前を変えていたため思わぬところでハマってしまった。
public class SampleForm extentds ActionForm{ private List resultList = new ArrayList(); … …… }
こんなActionFormがあったとしてJSPで
<logic:iterate id="list" name="SampleForm" property="resultList"> … <html:text name="list" property="field1" indexed="true" /> …… </logic:iterate>
と書くとテキストボックスの値がセットされない。
これは出力されるHTMLを見ればすぐにわかる。
<input type="text" name="list[0].field1" value="">
list[0]って何?resultList[0]じゃないんですか!
HTMLで出力されるのはid属性のほうなんだなこれが...。
これじゃあサブミットしても値がセットされないわけだ。
iterateタグのidとpropertyは同じ名前にするのが無難です。
これのせいで5時間もハマッちまったよ。