У меня простой метод контроллера:Spring MVC - не RequestBody работает (JSON)
@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
@ResponseBody
public void postCheck(@RequestBody TestDTO testDTO, HttpServletRequest request) {
System.out.println(testDTO);
}
DTO является:
public class TestDTO {
private String hello;
public TestDTO() {
}
public String getHello() {
return hello;
}
public void setHello(String hello) {
this.hello = hello;
}
}
Когда я пытаюсь оставить запрос на этот url я получаю сообщение об ошибке ERROR 400 «Запрос, отправленный клиентом, был синтаксически неправильным». (Метод контроллера не вызывается на всех)
Я попытался размещения от плаката плагин в Chrome и с помощью AJAX Jquery в:
$.ajax({
type : "POST",
url : "http://localhost:8080/NG_Admin/test",
contentType : "application/json",
dataType : "json",
data : JSON.stringify(eval({"hello" : "world"})),
error : function(data) {
alert('Error');
},
success : function(data) {
alert('Success!');
}
});
}
Есть идеи? (Кстати я использую как 'Джэксона-картографа-ASL', версия: '1.9.12', 'Джэксона-ядро-над уровнем моря', версия: '1.9.12')
Благодаря
работает, когда вы удаляете 'consumes = ...' из '@ RequestMapping' - Аннотации? У меня есть несколько подходящая настройка здесь (весна 3.2.4, jackson 1.9.12, jquery post from frontend, только расширенная с помощью прямой проверки для моей формы/dto тоже), только пропуская потребляет - и это работает как шарм. Но ... Я вижу, что вы строчите некоторые строки в json от клиентов ... возможно, это тоже. Я попытался бы удалить '' '' ' – Dominik
Все еще не работает :(Должен ли я настроить весну для работы с jackson? Или это происходит автоматически? – Urbanleg