代码之家  ›  专栏  ›  技术社区  ›  Georgi Michev

所需列表参数“state”不存在错误

  •  2
  • Georgi Michev  · 技术社区  · 7 年前

    我正在尝试在百里哀歌中制作一个选择多重形式。

    我的控制器:

    @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有问题

    1 回复  |  直到 7 年前
        1
  •  4
  •   locus2k    7 年前

    您指出您的方法是 @PostMapping 所以它表示post请求。 @RequestParam 指示参数来自url,而您获取的错误不在url中

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

    尝试更改 @请求参数 @RequestBody 因为post数据包含在post的正文中。