400 (Bad Request) при от правке данных на Spring контроллер

567
24 ноября 2016, 09:52

Хочу отправить данные с jquery на java controller

ajax:

$.ajax({
        url: "/saveMeeting",
        type: "POST",
        data: {name:$("#inputName").val(), place:$("#inputPlace").val(), date:$("#inputDate").val(), criteria: criteria, groups:group},
        success: function (data) {
            console.log(data);
        },
        error: function (textStatus) {
            console.log(textStatus);
        }
    });

тут name, place и date - строки, criteria и group - массивы строк.

контроллер:

 @RequestMapping(value = "/saveMeeting", method = RequestMethod.POST)
@ResponseBody
public String saveMeeting(@RequestParam String name, @RequestParam String place, @RequestParam String date,
                          @RequestParam List<String> criteria, @RequestParam List<String> groups) {
    System.out.println(name+" "+place+" "+date+" "+criteria+" "+groups);
    return "success";
}

при отправке получаю HTTP Status 400 - Required List parameter 'criteria' is not present. Если не отправлять последние 2 массива, то всё нормально приходит. Подскажите пожалуйста как исправить.

UPD

Переделал с одним объектом:

var Dto = {name:$("#inputName").val(), place:$("#inputPlace").val(),   date:$("#inputDate").val(), criterions: criteria, groups:group};
    $.ajax({
        url: "/saveMeeting",
        type: "POST",
        contentType: "application/json",
        data: JSON.stringify({newCriteriaDto: Dto}),
        dataType:'json',
        success: function (data) {
            console.log(data);
        },
        error: function (textStatus) {
            console.log(textStatus);
        }
    });

Поменял контроллер на

 @RequestMapping(value = "/saveMeeting", method = RequestMethod.POST)
@ResponseBody
public String saveMeeting(@RequestBody NewCriteriaDto newCriteriaDto) {
        System.out.println(newCriteriaDto);
    return "success";
}

Ошибка исчезла, но когда пытаюсь вывести newCriteriaDto, его поля не инициализированы (null).

READ ALSO
двойной клик android

двойной клик android

здравствуйте, как реализовать двойной клик jquery, который бы работал в браузерах на мобильных устройствах?.

541
Как правильно записать значение в value input&#39;а?

Как правильно записать значение в value input'а?

Значит записываю я значение (value) инпату с помощью jQuery и визуально оно записывается (в поле появляется необходимое значение), только вот форма...

415
Стилизация ползунка Range до манипулятора.

Стилизация ползунка Range до манипулятора.

Есть такая задача, стилизовать ползунок range. Выделить цветом выбранный участок поля и другим цветом остаток.

425