java—如何使用thymeleaf(db上的多对多关系)将复选框中的选定值放入arraylist

mf98qq94  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(175)

我用springmvc做了一个web应用程序,我有3个多对多关系表。讲座——分组。我可以在浏览器中创建新的讲座,但我需要为此讲座设置组。我的想法是用checkbox选择所有组并将它们放入数组中。此外,我会有一个新的演讲和属性组的id数组的id,我会创建几个对象演讲组,并保存到数据库中,但我不知道如何把复选框值数组。我想出了这样的办法。

<body>
<form th:method="POST" th:action="@{/lectures/{id}/addGroups(id=${lectureId})}" th:object="${groupContainer}">
    <h2>Choose groups for lecture:</h2>
    <ul>
        <li th:each="group : ${groups}">
            <label th:for="${group.getId()}" th:text="${group.getName()}">Group</label>
            <input type="checkbox" th:value="${group.getId()}" th:id="${group.getId()}" th:field=*{groupsId}"/>
        </li>
    </ul>
    <input type="submit" value="Add!"/>
</form>
</body>

控制器设计与方法

@GetMapping("/{id}/addGroups")
    public String selectGroups(Model model, @PathVariable("id") int lectureId) {
        model.addAttribute("groupContainer", new ArrayList<Integer>());
        model.addAttribute("lectureId", lectureId);
        model.addAttribute("groups", groupService.getAllGroups());
        return "lectures/lecture_groups";
    }

    @PostMapping("/{id}/addGroups")
    public String addGroups(@PathVariable("id") int lectureId, @RequestParam("groupContainer") ArrayList<Integer> selectedGroups) {
        for (Integer groupId : selectedGroups){
            lectureGroupService.save(new LectureGroup(lectureId, groupId));
        }
        return "redirect:/lectures";
    }

但它不起作用。请给我一个解决这个问题的建议

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题