Forms Spring MVC@ModelAttribute获取填充实体

Forms Spring MVC@ModelAttribute获取填充实体,forms,spring,spring-mvc,foreach,modelattribute,Forms,Spring,Spring Mvc,Foreach,Modelattribute,今天我被spring表单和POST方法卡住了,它没有将POST项提供给我想要的控制器。这是我的密码 Controller.java @Controller @RequestMapping("/cart") public class CartController extends CommonController { @RequestMapping(value = "/add", method = RequestMethod.POST) public ModelAndView add

今天我被spring表单和POST方法卡住了,它没有将POST项提供给我想要的控制器。这是我的密码

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");
    }
 }
@控制器
@请求映射(“/cart”)
公共类CartController扩展了CommonController
{
@RequestMapping(value=“/add”,method=RequestMethod.POST)
public ModelAndView addCart(@ModelAttribute(“productList”)项,BindingResult,模型模型){

System.out.println(item.getId());//将spring:hidden标记转换为普通html隐藏标记:

<form:hidden path="items[${status.index}].id"/>



已将其替换为您所说的内容,但仍然无法通过post方法获取该项目。该项目仍然没有内容。它现在确实在项目中填充了项目id,但无法获取所有项目数据。或者我只是误解了@ModelAttribute的属性:(.对不起,我完全失去了你!!我想要的是,如果我按下提交按钮,它将传递整个项目以及该项目拥有的所有数据。但是由于输入类型隐藏,你给它的只是该项目的id,而不是该项目的所有数据。糟糕,我误解了功能,但是:)哈哈,你的答案是对的。非常感谢^^你的答案=D。我只需要在发布后使用转换器将数据解析成它。谢谢:)
public class SearchForm implements Serializable
{
   private Collection<Item> items;
   private String term;
   // getters and setters
}
<form:hidden path="items[${status.index}].id"/>
<input type="hidden" name="id" value="${item.id}"/>