我試圖將一個對象(或ID)傳遞給我的控制器,我從下拉列表中選擇該控制器。有2類:產品和類(產品包含外鍵,這是類的ID)這是我如何將其加載到:將下拉列表(.jsp)中的對象傳遞給控制器
@RequestMapping(value="/edit", method=RequestMethod.GET)
public ModelAndView edit(@RequestParam(required=false) Long id) {
ModelAndView mv = new ModelAndView();
if (id == null) {
mv.addObject(new Product());
} else {
mv.addObject("product", productDao.findById(id));
}
mv.addObject("category", categoryDao.findAll());
mv.setViewName("edit-product");
return mv;
}
正如你所看到的,我將對象類別傳遞到我的.jsp中。我在那裏顯示用戶可以選擇的所有類別。
<select name="category">
<c:forEach items="${category}" var="category">
<option name="category" value="${category.id}">${category.name}</option>
</c:forEach>
</select>
該值應該傳遞給我的控制器,但我不知道如何傳遞它。
@RequestMapping(value="/save", method=RequestMethod.POST)
public String save(Product product, Category category, Model model) {
product.setCategory(category); //not working, since the parameter isn't correct
Product result = productDao.save(product);
// set id from create
if (product.getId() == null) {
product.setId(result.getId());
}
我仍然得到錯誤「客戶發送的請求在語法上不正確。」 。我嘗試過這樣的:''''''''''''''''''''''''''''''我試過這樣的:'public String save(Product Product,@RequestParam(value =「categoryId」)Long categoryId,Model model){' ',然後'product.setCategory(categoryDao.findById(categoryId) – Rudi
我已將名稱更改爲'name =「categoryId」',現在它正在工作 – Rudi