2011-03-29 80 views
0

在下面的代碼中testDataHashMap。我正試圖將複選框與spring:bind標記綁定。 我在春天遇到了語法錯誤:bind。你能告訴我在我的代碼中有什麼問題嗎?春季:與複選框綁定

​​

回答

0

你的spring中的路徑:bind標記可能是錯誤的。我不能告訴你正確的路徑,因爲你沒有描述你綁定的對象。

您可能希望使用form:checkbox標記代替彈簧綁定。

+0

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

2

我不知道,如果你有其他語法錯誤,而是通過改變此開始:

<spring:bind path="${testData[${loopStatus.index}]}.selected"> 

<spring:bind path="${testData[loopStatus.index]}.selected"> 
0

首先,在表達式語言,${開始你的表達和}重圓。你不需要嵌套它們或任何東西,所以${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> 

(不知道你需要的隱藏字段,我們沒有使用一個我們的任何複選框)。