Thymeleaf的Spring Boot发布列表
问题内容:
我想将字符串列表发布到我的控制器。但是它始终仅采用第一个选定的值。
我的百里香html形式:
<form action="/add" method="post">
<div class="form-group">
<label for="roleId">ID</label> <input type="text" class="form-control" id="roleId" name="id" required="required" />
</div>
<div class="form-group">
<label for="rolePrivileges">Privileges</label>
<select class="form-control" id="rolePrivileges" name="privileges" multiple="multiple" size="10" required="required">
<option th:each="type : ${privilegesList}" th:value="${type}" th:text="${type}">Privilege</option>
</select>
</div>
<button type="submit" class="btn btn-default">Create</button>
</form>
我的控制器:
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addSomething(Model model, @ModelAttribute("id") String id,
@ModelAttribute("privileges") List<String> privileges) {
// add something with a service
return "redirect:/roles";
}
问题答案:
我认为您必须以以下方式注释特权
@RequestParam("privileges")
它不是ModelAttribute,但是您是从请求中收到的
编辑:两个SO线程,以更好地了解@RequestParam和@ModelAttribute]之间的区别。