10
我有一个命令对象FaxForm
,它拥有一个faxStatusList
属性内的FaxStatus
对象列表。使用Spring的表单标签动态绑定列表
public class FaxForm {
private List<FaxStatus> faxStatusList;
public void setFaxStatusList(List<FaxStatus> faxStatusList) {
this.faxStatusList = faxStatusList;
}
public List<FaxStatus> getFaxStatusList() {
return faxStatusList;
}
}
我最初有一个JSP页面,将通过执行绑定的对象如下:
<c:forEach items="${esaFaxForm.faxStatusList}" var="item" varStatus="loop">
<tr class="tableAltBackground">
<td>
<form:checkbox path="faxStatusList[${loop.index}].selected"/>
</td>
<td>
<form:select path="faxStatusList[${loop.index}].status" items="${esaFaxForm.statusOptions}" onchange="checkThisBox(this);"/>
</td>
<td>
<a href="${statusContUrl}?id=${item.id}&status=${item.status}" onclick="openFaxWindow('${viewFaxUrl}?id=${item.id}', ${loop.index});">${item.name}</a>
<form:hidden path="faxStatusList[${loop.index}].name"/>
</td>
<td>
<a href="${statusContUrl}?id=${item.id}&status=${item.status}" onclick="openFaxWindow('${viewFaxUrl}?id=${item.id}', ${loop.index});">${item.id}</a>
<form:hidden path="faxStatusList[${loop.index}].id"/>
</td>
</tr>
</c:forEach>
不过,我想弄清楚我怎么可以没有foreach循环和索引的结合。 Spring网站上的示例通过将路径设置为列表名称来显示绑定。有没有办法来绑定属性?我试过,但它失败:
<form:checkbox path="faxStatusList.faxStatus.selected"/>
<form:select path="faxStatusList.faxStatus.status" items="${esaFaxForm.statusOptions}"/>
的faxStatusList有一个getter和setter方法和FaxStatus变量都有的getter/setter属性。我得到的错误“bean类的无效属性‘faxStatusList.faxStatus’......”
faxStatusList是一个索引属性。所以你不能使用像faxStatusList.faxStatus这样的东西。改用faxStatusList []。faxStatus。 –
2009-12-19 22:41:30
我真的很喜欢你当前的代码作为答案,因为它提供了很大的灵活性。 – Steve 2011-03-01 15:27:57