У меня проблема с реализацией выпадающего списка в моем коде.Я хочу отобразить список объектов типа ProductCategory.Это все хорошо, но когда я пытаюсь сохранить форму, сохраняется весь объект ProductCategory, а не только поле из объекта, которое отображается в списке выбора.
Вот мой кодвыглядит следующим образом:
IModel categories = new LoadableDetachableModel() {
public List<ProductCategory> load() {
List<ProductCategory> l = categoryService.findAllProducts();
return l;
}
};
IChoiceRenderer renderer = new IChoiceRenderer() {
public Object getDisplayValue(Object obj) {
ProductCategory category = (ProductCategory) obj;
return category.getName();
}
public String getIdValue(Object obj, int index) {
ProductCategory category = (ProductCategory) obj;
return category.getName();
}
};
DropDownChoice<ProductCategory> listCategories = new DropDownChoice<ProductCategory>(
"productCategory",
categories,
renderer
);
add(listCategories);
Сгенерированный HTML выглядит примерно так:
<select wicket:id="productCategory" name="productCategory">
<option selected="selected" value="">Vælg en</option>
<option value="test1">test1</option>
<option value="test2">test2</option>
</select>
Поле «productCategory» существует в объекте типа «Product» и имеет тип String.
Как я пытался описать;я хочу сохранить ProductCategory.getName () в поле «productCategory» в Product, а не весь объект ProductCategory.Другими словами: я хочу сохранить «test1» в Product.productCategory, но вместо этого он сохраняет com.test.webapp.domain.ProductCategory@1.
Может кто-нибудь сказать, как это делается?
Любая помощь очень ценится.