Как правильно использовать Spring MVC 3.2.3 с помощью bootstrap selectpicker?Spring MVC + bootstrap-select multiple
Я создаю selectpicker в JSP:
<form:form role="form" id="orgForm" commandName="orgDto" >
...
<form:select id="affOrgId" class="form-control selectpicker" path="affOrgIds" itemValue="id" multiple="true" items="${organizations}" itemLabel="label"/>
и активировать его в ЯШАХ:
$('.selectpicker').selectpicker();
Вот мой метод обработчика формы заголовок в классе контроллера:
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public @ResponseBody
OrganizationDto updateOrganization(@PathVariable Long id,@Valid @RequestBody OrganizationDto org) {
I судимым для привязки выбранных значений выбора к List<String>
и List<Integer>
в модуле эль-класс (OrganizationDto):
private List<String> affOrgIds;
Когда я выбираю несколько значений в selectpicker и отправить форму я получаю исключение:
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token
at [Source: [email protected]; line: 1, column: 205] (through reference chain: com.org.OrganizationDto["affOrgIds"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token
И в инструментах разработчика Chrome в JSON Request Payload есть только один значение:
affOrgIds:"48"
(Также есть несколько странных полей в json: _affOrgIds: «1». Что это)
Я создаю этот JSON в JS так:?
var dataObj = $form.serializeJSON();
, а затем создать PUT запрос по $.ajax()
метода. Когда я отладка он есть в dataObj
affOrgIds:"48"
Так как связать Spring MVC с начальной загрузкой selectpicker представить несколько выбранных значения?
UPD: Я подозреваю, что serializeJSON() работает неправильно в этой ситуации, и я должен создать JSON по-другому.
ПОСТАНОВИЛИ: добавил dataObj.affOrgIds = $form.find('#affOrgId').val();
Я не понимаю, откуда этот «JSON». вы используете '@ RestController'? – sedooe
Извините, забыл написать это ... Обновлено ... – kostepanych
Вы должны либо ответить на свой вопрос, либо закрыть этот вопрос, если он будет разрешен. –