Я пытаюсь выбрать несколько форм в тимелеафе.

Мой контроллер:

@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>

У меня есть список состояний в моем домене, и я пытаюсь установить несколько состояний для пользователя, но получаю это сообщение об ошибке «Состояние обязательного параметра списка отсутствует». Я думаю, что что-то не так с моим контроллером и @RequestParam

2
Georgi Michev 24 Апр 2018 в 15:53

1 ответ

Лучший ответ

Вы указали, что ваш метод - @PostMapping, поэтому он указывает на почтовый запрос. @RequestParam указывает, что параметр исходит из URL-адреса, а ошибка, которую вы получаете, заключается в том, что его нет в URL-адресе, это будет что-то вроде

localhost:8080/myApp/employer/questionnaire?state=Hello

Попробуйте изменить @RequestParam на @RequestBody, поскольку данные сообщения содержатся в теле сообщения.

3
locus2k 24 Апр 2018 в 13:44