私は2つのモデルを持っています:
public class Size {
private String name;
// getter and setter
}
public class Product {
private int id;
private String designation;
private Float price;
private List<Size> availableSizes;
// Getter and setters
}
サーブレットでサイズを定義しましたが、使用可能なサイズの製品を作成する必要があります。
インデックスコントローラーで行うこと:
ModelAndView render = new ModelAndView("admin/index");
render.addObject("products", productFactory.getProducts());
render.addObject("sizes", sizeFactory.getSizes());
render.addObject("command", p);
return render;
商品のリストとサイズのリストがあります。
私のインデックスビューでは、次のことを行います。
<form:form method="post" action="/ecommerce/admin/products" class="form-horizontal">
<form:input path="id" />
<form:input path="designation" />
<form:input path="price" />
<form:select path="availableSizes" items="${sizes}"/>
<input type="submit" value="Ajouter le produit" class="btn" />
</form:form>
次に、新製品コントローラーで、次のことを行います。
// To fix: Sizes not saved !
@RequestMapping(value = "/products", method = RequestMethod.POST)
public ModelAndView newProduct(@ModelAttribute("Product") Product product,
BindingResult result) {
productFactory.add(product);
return buildIndexRender(null, null, product);
}
問題は、投稿された商品をキートしているのに、対応するサイズがないことです。
選択したサイズをコントローラーのフォームに保持する方法はありますか、それともモデルに直接保持する方法はありますか?
ありがとう。