Я пытаюсь сохранить данные формы, используя теги Struts 2.
Форма содержит <s:textfield>
, который изначально был заполнен методом получения, возвращающим массив.
Теперь я хотел бы изменить содержимое формы и затем отправить форму, но метод 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
не вызывается при отправке формы.
Эта проблема особенно связана с сеттерами, которые принимают в качестве аргумента массив,
все остальные сеттеры с аргументами, не являющимися массивами (включая ArrayList
), работают нормально.