我正在尝试在百里哀歌中制作一个选择多重形式。
我的控制器:
@PostMapping(value = "/employer/questionnaire") public String employerQuestionnaire(@RequestParam Map<String, String> body, @RequestParam("state") List<String> states, Model model){ questionnaire.setStates(states); }
我的模板:
<label for="State" class="label">State</label> <select id="State" name="State" data-name="State" class="w-select" multiple="multiple"> <option th:each="s : ${states}" th:value="${s.getName()}" th:text="${s.getName()}" th:selected="${questionnaire.getStates() != null && questionnaire.getStates().contains(s.getName())}"></option>
我在我的域中有状态列表,我正在尝试为用户设置多个状态,但我收到此错误消息“所需的列表参数‘state’不存在”。我认为我的控制器和@RequestParam有问题
您指出您的方法是 @PostMapping 所以它表示post请求。 @RequestParam 指示参数来自url,而您获取的错误不在url中
@PostMapping
@RequestParam
localhost:8080/myApp/employer/questionnaire?state=Hello
尝试更改 @请求参数 到 @RequestBody 因为post数据包含在post的正文中。
@请求参数
@RequestBody