春季:与复选框绑定

问题描述:

在下面的代码中testDataHashMap。我正试图将复选框与spring:bind标记绑定。 我在春天遇到了语法错误:bind。你能告诉我在我的代码中有什么问题吗?春季:与复选框绑定

​​

你的spring中的路径:bind标记可能是错误的。我不能告诉你正确的路径,因为你没有描述你绑定的对象。

您可能希望使用form:checkbox标记代替弹簧绑定。

+0

@skaffman:testData是typeHashMap的对象,命令名是search。 – rajputhch 2011-03-29 11:18:41

我不知道,如果你有其他语法错误,而是通过改变此开始:

<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> 

(不知道你需要的隐藏字段,我们没有使用一个我们的任何复选框)。