我目前有以下代码,数据显示正常.
<logic:iterate name="myList" id="product" indexId="iteration" type="com.mycompany.MyBean">
<tr>
<td> <bean:write name="product" property="weight"/> </td>
<td> <bean:write name="product" property="sku"/> </td>
<td> <bean:write name="product" property="quantity"/> </td>
</tr>
</logic:iterate>
但现在我需要使“数量”部分可以修改.用户应该能够更新该字段,按提交,当它发送到服务器时,“myList”应该自动更新新的数量.
我试图在这方面寻求帮助,但我一直在寻找的只是如何显示数据的示例,而不是修改它.任何帮助,将不胜感激.
解决方法:
所以这很棘手,因为有很多事情要做才能使它发挥作用.首先,使用html标签在迭代器中声明你的标签,属性为INDEXED = TRUE,ID与名称不同,我还取出了“indexId”属性,使用简单的“索引”字作为索引:
<logic:iterate name="myList" id="myListI" type="com.mycompany.MyBean">
<tr>
<td> <html:input name="myListI" property="weight" indexed="true"/> </td>
<td> <html:input name="myListI" property="sku" indexed="true"/> </td>
<td> <html:input name="myListI" property="quantity" indexed="true"/> </td>
</tr>
之后,为了使struts能够获取和设置bean的属性,您需要使用在iterate标记的id中编写的名称在集合对象中声明EXTRA get和set方法.在这种情况下,您将为“myListI”编写2个额外的get和set方法:
public void setMyListI(int index, myBean value){
this.myList.add(value);
}
public myBean getMyListI(int index){
return this.myList.get(index);
}