【发布时间】:2011-03-31 22:03:47
【问题描述】:
我在春天有一个选择多个:
<form:select path="categoryProducts" id="destinationData" itemLabel="product.name" items="${categoryProducts}" itemValue="product.id" multiple="true" ondblclick="moveLeft(document.getElementById('destinationData'), document.getElementById('sourceData'))" size="10" />
在我的控制器中:
@InitBinder
public void initBinder(WebDataBinder binder){
binder.registerCustomEditor(Set.class, "categoryProducts", new CustomCollectionEditor(Set.class)
{
@Override
protected Object convertElement(Object element)
{
Product p = new Product() ;
try {
Short id = new Short(String.valueOf(element));
p = (Product) dataManager.find(Product.class, id);
System.out.println(p.getId() + "\\" +p.getName());
CategoryProduct c = new CategoryProduct ();
c.setProduct(p);
return c;
} catch (Exception e) {
e.printStackTrace();
}
return p;
}
});
当我提交时,收到此日志:
136 Product Name
105 Product Name
104 Product Name
211 Product Name
204 Product Name
409 Product Name
30/03/2011 07:32:20 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() para servlet cms lanzó excepción
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'category' on field 'categoryProducts': rejected value [136,105,104,211,204,409][type
initBinder 被初始化,但最后抛出异常: (rejected value [136,105,104,211,204,409]) 。 为什么?
【问题讨论】:
标签: spring data-binding