问题描述
有如下应用场景:有一个投票系统,每一个投票主题下面有多个子调查,并且子调查的个数是不确定的,可能1个,也可能多个,具体几个用户可以动态添加子调查。假设调查主题和子调查定义如下:调查主题Vote public class Vote { private int id; private String content; private Set<SubVote> subVotes; //略去getter/setter即其它属性} 调查主题的子调查: public class SubVote { private int id; private Vote vote; private String name; //略去getter/setter即其它属性} 根据前面的叙述,调查主题下面可以有若干个子调查,子调查的个数和具体内容用户录入,然后提交,问题是:由于可能有多个子调查“SubVote”,这多个(具体个数不定)子调查的表单在提交时服务器端如何处理?表单又该如何设计?(要防止出现子调查1的选项和子调查2的选项混淆,并且子调查SubVote的属性名字是一样的) 这个问题和帖子:扩展SpringMVC以支持更精准的数据绑定 中的问题不一样,思索再三没有好的解决办法。我想的变通的解决方法是:先添加调查主题,然后一个一个的为主题添加子调查。但我想要一次添加一个主题和多个子调查的解决方案,请关注,谢谢!
解决方案
你想要的功能如果是 1:多插入 请参考我的https://github.com/zhangkaitao/es/blob/master/web/src/main/java/com/sishuok/es/showcase/parentchild/web/controller/ParentController.javapublic String create( Model model, @Valid @ModelAttribute("parent") Parent parent, BindingResult result, @FormModel("childList") List<Child> childList, RedirectAttributes redirectAttributes) {使用我博客里的@FormModel