0
${products}
包含List<Product>
。 Product
是一個@Entity
,有一個equals
方法比較id
。有沒有爲Product
註冊的轉換器或格式化(除春節數據的DomainClassConverter
但是這似乎並沒有踢在這種情況下):彈簧窗體選項不選擇項目,選項是
這工作:
<form:select path="productFrom">
<form:option value="" label="-" />
<form:options items="${products}" itemValue="id" itemLabel="name"/>
</form:select>
這(需要OPTGROUP-ING ,但這裏的簡化)沒有選擇正確的值:
<form:select path="productFrom">
<form:option value="" label="-" />
<c:forEach items="${products}" var="product">
<form:option value="${product.id}">${product.name}</form:option>
</c:forEach>
</form:select>
調試SelectedValueComparator
我發現,它試圖Long
類型的candidateValue
比作後String
的。我可以通過在產品中創建toString()
方法來解決這個問題,該方法返回id
作爲String
。 (或者我可以修改equals()
方法來處理Long
。)
不過,我有一種糟糕的感覺,我在這裏做錯了什麼。
再次與自己說話,不幸的是,接受我自己的答案然後...嘆了口氣 – Arthur