0
今天我堅持使用POST方法的春天形式,它沒有給我想要的控制器張貼項目。這是我的代碼。春天MVC @ModelAttribute越來越充實體實體
Controller.java
@Controller
@RequestMapping("/cart")
public class CartController extends CommonController
{
@RequestMapping(value = "/add", method = RequestMethod.POST)
public ModelAndView addCart(@ModelAttribute("productList") Item item, BindingResult result,Model model){
System.out.println(item.getId()); /// <-- doesn't gives me the ID
return new ModelAndView("cart");
}
}
ProductList.jsp
/// Loop through the products of search itemlist and generates the forms with the correct items
<c:forEach var="item" items="${productList.items}" varStatus="status">
${item.name}
<div class="addCart">
<c:url value="/cart/add.html" var="addURL" />
<form:form method="POST" action="${addURL}" modelAttribute="productList">
<form:hidden path="items[${status.index}].id"/>
<input type="submit" class="addCartBtn" value="Add to cart" />
</form:form>
</div>
BackingBean.java
public class SearchForm implements Serializable
{
private Collection<Item> items;
private String term;
// getters and setters
}
的$ {} productList的是通過所有的循環backingbean項目。
我真的不知道是什麼問題,爲什麼它沒有給我正確的數據,它通過POST。 非常感謝。
予以更換,以你說什麼,但仍然可以通過郵寄方式沒有得到該項目。該項目仍然沒有內容。 – Skyverian
而不是name =「item.id」,使用name =「id」。我更新了答案。 –
它現在填寫項目中的項目ID,但它沒有獲取所有項目數據。或者我只是誤解@ModelAttribute屬性:(。 – Skyverian