У меня есть один выборочный элемент весной:
<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
InitiBinder инициализируется, но в конце выдает исключение: (отклоненное значение [136,105,104,211,204,409]).Почему?