春季:与复选框绑定
问题描述:
在下面的代码中testData
是HashMap
。我正试图将复选框与spring:bind
标记绑定。 我在春天遇到了语法错误:bind。你能告诉我在我的代码中有什么问题吗?春季:与复选框绑定
答
我不知道,如果你有其他语法错误,而是通过改变此开始:
<spring:bind path="${testData[${loopStatus.index}]}.selected">
为
<spring:bind path="${testData[loopStatus.index]}.selected">
答
首先,在表达式语言,${
开始你的表达和}
重圆。你不需要嵌套它们或任何东西,所以${testData[${loopStatus.index}]}
是你的语法错误,并且.selected
超出了你的表达范围,所以应该只是:${testData[loopStatus.index].selected}
。
现在,在forEach
中,您的var
属性确定包含当前项目的变量的名称。所以你很少需要使用varStatus
。您可以将您的测试作为${test.selected}
。
最后,您的checked
属性超出了您的复选框输入元素!
所以:
<c:forEach items="${testData}" var="test">
<spring:bind path="${test.selected}">
<input type="hidden" name="_${status.expression}">
<input type="checkbox" name="${status.expression}" value="true" <c:if test="${status.value}">checked</c:if>>
</spring:bind>
</c:forEach>
(不知道你需要的隐藏字段,我们没有使用一个我们的任何复选框)。
@skaffman:testData是typeHashMap的对象,命令名是search。 – rajputhch 2011-03-29 11:18:41