2017-02-20 4 views
0

Ich möchte eine Liste von Zeichenfolgen auf meinem Controller veröffentlichen. Aber es nimmt immer nur den ersten ausgewählten Wert an.Spring Boot mit Thymeleaf Beitragsliste

meine thymeleaf HTML-Formular:

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

mein Controller:

@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"; 
} 
+1

Versuchen Sie mit '@ RequestParam' anstelle von' @ ModelAttribute' –

+0

danke es funktioniert! – silb78

+0

Thomas Pawlitzki hat mich um ein paar Minuten geschlagen, Sie sollten seine Antwort bestätigen. –

Antwort

3

Ich glaube, Sie die privilges mit

@RequestParam("privileges") 

mit Anmerkungen versehen haben es kein ModelAttribute, aber Sie erhalten es aus der Anfrage

Edit: zwei SO-Threads, um den Unterschied zwischen @RequestParam und @ModelAttribute besser zu verstehen.

Verwandte Themen