Как отправить строку [] из формы множественного выбора Thymeleaf в контроллер - PullRequest
0 голосов
/ 13 октября 2018

У меня есть шаблон с формой:

<h2>Favorite States</h2>
<form action="#" th:action="@{/states}" name="states" method="post">
    <select class="js-example-basic-multiple" multiple="multiple" style="width: 60%">
        <option th:each="state: ${states}"  th:utext="${state.name}"></option>
    </select>
    <button type="submit" class="btn btn-primary">Submit</button>
</form>

Я хочу получить String [] из этой формы, например, если пользователь выбрал NY, CA, MA, я хочу получить String[] selectedStates = {"NY", "CA", "MA"}; в моем посте карта контроллера.Как я могу это сделать?Я пытался

@GetMapping(path="/states")
    public @ResponseBody String statesList (@RequestParam String[] name) {
    }

Но он говорит, что обязательный параметр не получен.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Вы можете преобразовать массив javascript в JSON, используя приведенный ниже код.

JSON.stringify(array);

И в контроллере примите его как параметр String, а затем преобразуйте его обратно в массив, используя библиотеку Джексона, как показано ниже:

ObjectMapper mapper = new ObjectMapper();
String [] array = mapper.readValue(jsonString, String[].class):
0 голосов
/ 13 октября 2018

Вы можете обернуть его и передать в качестве атрибута модели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...