Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 3.1表单和列表绑定_Spring_Jsp_Spring Mvc - Fatal编程技术网

Spring 3.1表单和列表绑定

Spring 3.1表单和列表绑定,spring,jsp,spring-mvc,Spring,Jsp,Spring Mvc,我一直没有找到一个解决方案,但在搜索后,搜索 使用Spring3.1 我有一个表单,我希望用户能够添加多个联系人点poc。在我的JSP中,我有一个用于添加poc的提交按钮。它转到一个Spring控制器,从域对象获取当前的poc列表,该列表首先为空,将poc添加到列表中,然后在返回到同一视图之前将域对象放回模型中。然后,用户将最终提交整个页面,该页面将转到控制器,并将整个对象保存到持久化 我尝试了各种尝试,并得出了不同的结果,从只能添加一个poc并覆盖现有poc,到无法在表单上显示输入的poc。我

我一直没有找到一个解决方案,但在搜索后,搜索

使用Spring3.1

我有一个表单,我希望用户能够添加多个联系人点poc。在我的JSP中,我有一个用于添加poc的提交按钮。它转到一个Spring控制器,从域对象获取当前的poc列表,该列表首先为空,将poc添加到列表中,然后在返回到同一视图之前将域对象放回模型中。然后,用户将最终提交整个页面,该页面将转到控制器,并将整个对象保存到持久化

我尝试了各种尝试,并得出了不同的结果,从只能添加一个poc并覆盖现有poc,到无法在表单上显示输入的poc。我将把我目前拥有的代码

JSP:

弹簧控制器:

@RequestMapping(value="/request", method=RequestMethod.POST, param="addPoc")
public Sring addPoc(@RequestParam String newPoc, MyRequest req, Model model) {
   PointOfContact poc = new PointOfContact();
   poc.setName(newPoc);
   List<PointOfContact> pocs = req.getPointOfContacts();
   pocs.add(poc);
   req.setPointOfContacts(pocs);
   model.addAttribute("request", req);
   return "requestForm";
}
域对象

@Entity
public class MyRequest {
   ...

   @OneToMany(Cascade=CascadeType.ALL)
   private List<PointOfContact> pointOfContacts = new ArrayList<PointOfContact>();

   .....
}

@Entity
public class PointOfContact {
   ...

   private String name;

  ....
}

有人有什么解决办法吗?我看过很多关于AutopopulationGlist的帖子,这是一个解决方案吗?如果是这样,我将如何在本例中使用它。

是的,您应该使用AutoPopulationGlist。这将需要更改MyRequest实体

是的,您应该使用AutoPopulatingList。这将需要更改MyRequest实体

控制器的完整代码是什么?您是否使用@SessionAttributes?控制器的完整代码是什么?您是否使用@SessionAttributes?最好不要简单地链接到另一个页面,而是将您的答案放在这里。示例1现在已经不存在了,因此答案是无用的。最好不要简单地链接到另一个页面,而是将答案放在这里。示例1现在已经不存在了,因此答案是无用的。
@Entity
public class MyRequest {
   ...

   @OneToMany(Cascade=CascadeType.ALL)
   private List<PointOfContact> pointOfContacts = new ArrayList<PointOfContact>();

   .....
}

@Entity
public class PointOfContact {
   ...

   private String name;

  ....
}