【发布时间】:2009-12-22 02:56:23
【问题描述】:
我有一个命令对象FaxForm,它在faxStatusList 属性中保存了一个FaxStatus 对象列表。
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。 -
我实际上喜欢您当前的代码作为答案,因为它提供了很大的灵活性。
标签: java spring dynamic-binding