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