Отправьте handsontable в контроллер spring mvc3 - Тип контента "application/x-www-form-urlencoded" не поддерживается

im new для spring mvc3, и я смотрю на удобный для jQuery пример.

вот моя часть моей страницы jsp, которая включает в себя форму

<form:form action="${pageContext.request.contextPath}/app/${application.id}/user/bulkImport" method="POST"> 
 
  
 
</form:form>

:

@RequestMapping(value="/bulkImport", method = RequestMethod.POST)
 public String importUsers(@RequestBody BulkUserImportEntries entries)
 throws Exception {
 Iterator itr = entries.getData().iterator();
 while(itr.hasNext()) {
 Object obj = (Object)itr.next();
 }
 return "redirect:/app/{appId}/user/{id}";
 }

Класс BulkUserImportEntries:

public class BulkUserImportEntries implements Serializable{ 
 private List<object[]> data;
 protected BulkUserImportEntries() {}
 protected BulkUserImportEntries(List<object[]> data) {
 this.data = data;
 }
 public List<object[]> getData() {
 return data;
 }
}
</object[]></object[]></object[]>

im получить эту ошибку при отправке формы.

Тип контента "application/x-www-form-urlencoded" не поддерживается

Я хотел бы получить массив значений из моего jsp, чтобы иметь возможность повторять его на контроллере. Я вижу, что это возможно на примере, но это использует атрибут modelAttribute. Снова им довольно новый и застрял здесь уже неделю: (

Спасибо за помощь

2 ответа

Проблема заключается в том, что, когда мы используем application/x-www-form-urlencoded, Spring не понимает его как RequestBody. Итак, если мы хотим использовать это мы должны удалить аннотацию @RequestBody.

Затем попробуйте следующее:

@RequestMapping(value="/bulkImport", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String importUsers(BulkUserImportEntries entries) throws Exception {
 Iterator itr = entries.getData().iterator();
 while(itr.hasNext()) {
 Object obj = (Object)itr.next();
 }
 return "redirect:/app/{appId}/user/{id}";
}

Обратите внимание, что удалили аннотацию @RequestBody и добавили потребляет= MediaType.APPLICATION_FORM_URLENCODED_VALUE

answer: Запрос на публикацию Http с приложением типа контента /x -www-form-urlencoded не работает в Spring


Попробуйте

contentType: "application/json",

вместо

headers: {
 'Content-Type': 'application/json'
},

в вашем файле jsp.

Надеюсь, что это поможет.

licensed under cc by-sa 3.0 with attribution.