我正在尝试使用Struts 2标签保存表单数据。
该表单包含一个<s:textfield>
,最初是通过返回数组的getter方法填充的。
现在,我想修改表单内容然后提交表单,但是在提交表单时不会调用将数组作为参数的setter方法。
java formBean:
class MyBean {
// the following field is initialized by some method with data like
// userNames[0].getValue() = "ravi";
// userNames[1].getValue() = "chandra" ;
private UserNames[] userNames;
public UserNames[] getUserNames() {
return this.userNames;
}
public void setUserNames(UserNames[] userNames) {
this.userNames= userNames;
}
}
JSP:
<s:iterator value="userNames" status="stat">
<s:textfield name="userNames[%{#stat.index}].value" />
</s:iterator>
未在表单提交上调用设置方法setUserNames
。
此问题尤其适用于以Array作为参数的setter,
其他所有带有非数组参数的设置器(包括ArrayList
)都可以正常工作。