你好亲爱的堆栈溢出的人。我最近在我的 Struts 应用程序中遇到了一个问题。我有一个正确显示一些bean值的jsp(我只粘贴了代码的相关部分,我简化到了极致):
<table>
<logic:iterate name="bean" property="list1" id="listItem">
<tr>
<td>
<html:checkbox name="listItem" property="selected">
</html:checkbox>
</td>
</logic:iterate>
</table>
我的 bean 有一个 list1 属性及其 getter 和 setter
private List<RandomObject> list1;
public List getList1() {
return list1;
}
public void setList1(List list1) {
this.list1=list1;
}
我的子 bean 有一个选定的属性:
private boolean selected;
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
现在,当输入这个 jsp 时,我得到的值是正确的,即:如果我在 DB 中的映射对象为 selected=true,则选中该复选框。我不明白如何保存我在此表单中所做的更改。当我提交时,所有更改都将丢失。这是纯粹的 struts 相关的,因为在调试中,当我输入链接到提交的 StrutsAction 时,我得到的 ActionForm 已经丢失了所有有趣的值。另外我觉得这与我想要保留的值不是直接存储在主 bean 上,而是子 bean 的属性有关,因为在同一页面上还有很多其他的直接在主 bean 上的属性,我可以轻松保存。
我错过了什么 ?