У меня есть Spring REST-приложение, которое может маршалировать объект в JSON при получении запроса GET.Однако, что я должен сделать для методов POST.Я отправляю объект JSON, но он не может разобрать его в объект Java.Вот метод моего контроллера:
@RequestMapping(value = "/user", method = RequestMethod.POST)
public void createUser(HttpServletResponse response, @RequestBody User user) {
...
response.setStatus(HttpServletResponse.SC_OK);
}
Я отправляю свой JSON вот так:
var userName = $('#userName').val();
var password = $('#password').val();
var mail = $('#mail').val();
var admin = $("#admin").is(':checked');
var user = {userName: userName, password: password, mail: mail, admin:admin};
$.ajax({
async : false,
type: 'POST',
contentType: 'application/json',
url: '/sfd/user',
data: user,
dataType: 'json',
success: function(data) {
...
},
error: function(data) {
...
}
});
PS: Здесь: http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/ этоговорит:
Если есть ошибки проверки, возвращается HTTP 400 с сообщениями об ошибках, в противном случае возвращается HTTP 200.
У меня 400 Ошибка ошибочного запроса.Может быть, проблема связана с этим?
PS2: Должен ли я отправлять объект User после установки всех его элементов?Я имею в виду, что у объекта User есть некоторые другие атрибуты, то есть адрес, но я не устанавливаю и не отправляю его от клиента.
PS3: Когда я отлаживаю методрещение абстрактного разрешения AbstractHandlerExceptionResolver, я вижу эту ошибку.Он говорит, что 'u' - это неопределенный символ (я проверял, что 'u' - это первый ключ первого символа JSON => userName).