Spring MVC将父对象设置为具有动态形式的列表

时间:2016-02-09 21:37:28

标签: java spring-mvc thymeleaf

所以我有一个用Thymeleaf和Spring MVC创建的动态表单,我所拥有的父对象名为StudySet,其列表为Rows,行是'拥有一个名为Row的对象。

现在我在arrayList上有一个rows StudySet,当我在调试模式下运行我的应用程序时,我可以看到它。您可以在下面的图片中看到。

enter image description here

此时我尝试做的就是将studySet设置为所有行,然后保存studySet和控制器中的行,这样在我的应用程序的另一部分,我可以拉分配给特定studySet的行。

这是我的控制器中的POST方法中的代码

@RequestMapping(value="createStudySet", method=RequestMethod.POST)
public String createSetPost (@ModelAttribute StudySet studySet, ModelMap model, @AuthenticationPrincipal User user) {

studySet.setUser(user);
user.getStudySet().add(studySet);

List<Row> rows = studySet.getRows();
((List<Row>) ((Row) rows).getStudySet()).addAll((Collection<? extends Row>) studySet);


studySetRepo.save(studySet);   

return "redirect:/answers";
}

此代码不起作用,但我认为它可以将我rows保存到studySet时尝试完成的工作。

如果有人能够找到解决问题的方法并帮助我,那就太好了,先谢谢。

1 个答案:

答案 0 :(得分:0)

似乎问题在于这一行:

((List<Row>) ((Row) rows).getStudySet()).addAll((Collection<? extends Row>) studySet);

据我了解你的问题,你应该做类似(或类似)的事情:

for (Row row : rows) {
    row.setStudySet(row.getStudySet().addAll(studySet))
}