Как получить обратно список для выпадающего как @ModelAttribute для Spring mvc Post?
У меня есть следующая ViewModel, которая устанавливает список элементов для отображения в моем раскрывающемся списке.
myController / Index
// set view model list of items to populate in drop down...viewModel contains listItems as
List<String>
viewModel.setlistitems(//list retrieved 3rd party);
// add view model to model to display items in drop down list viewModel.getlistitems() returns List<String>
model.addAttribute("viewModel", viewModel);
Тогда у меня есть выпадающий список в моем index.jsp, который заполняет список в порядке:
<form class="form-horizontal" action="myController/indexSubmit" method="post">
<select name="selectList" class="form-control" placeholder=".input-medium" height>
<c:forEach items="${viewModel.getlistitems()}" var="item" varStatus="count">
<option value="${count.index}">${item }</option>
</c:forEach>
</select>
<button type="submit" class="btn btn-primary btn-medium">Submit</button>
</form>
Отправить сообщения обратно, и я получаю индекс выбранного выпадающего просто отлично в "selectList". Тем не менее, когда я пытаюсь получить элементы списка из моей модели представления, это ноль?
@RequestMapping(value="indexSubmit", method = RequestMethod.POST)
public String indexSubmit( @RequestParam String selectList,
@ModelAttribute("viewModel") ViewModel viewModel, ModelMap model) {
System.out.println("Selected Item: " + selectList); // returns the index fine
System.out.println("Items: " + viewModel.getlistitems()); // returns NULL!! this was the same list call that populated the drop down
return "redirect:/index";
}
Как я могу 1) вернуть list<string>
вернуться из моей модели представления, чтобы получить список элементов, на которые можно ссылаться через индекс выбранного элемента, для возврата в качестве параметра запроса или 2) как получить фактический строковый литерал выбранного элемента вместо индекса?
Спасибо!
1 ответ
model.addAttribute("nameOfList", viewModel.getlistitems());
тогда в вашей форме используйте весенний тег lib
<form:select path="modelPath">
<form:option value="0" label="Select an Option" />
<form:options items="${nameOfList}" />
</form:select>