Я пытаюсь отправить сложный объект в контроллер ajax для поисковой системы Spring mvc с тремя переменными: текущей страницей, элементами на странице и параметрами поиска. Проблема заключается в том, что с объявлением метода контроллера не меняет переменную params как карту.Отправить комплексный объект json для контроллера Spring MVC
Как я могу отправить структуру для сбора на контроллере 3 переменных отдельно?
Ошибка:
Required Map parameter 'params' is not present
var dataToSend = {
'page': 1,
'itemsPerPage': 10,
'params': {
'codItem': "10",
'nameItem': "foo"
}
};
$.ajax({
url: form.attr("action"),
type: 'POST',
data: JSON.stringify(dataToSend),
dataType: 'json',
cache: false
}).success(function(data) {
callback(data);
});
public @ResponseBody HashMap<String, Object> search(@RequestParam(value="params") Map<String, String> params, @RequestParam(value = "page") int page, @RequestParam(value = "itemsPerPage") int itemsPerPage){
};
Моя проблема, я хочу, чтобы отправить переменные itemsPerPage страницы и отдельные Params для последующего процесса поиска, который уже поставил меня с ними следующим образом: $ .ajax ({ URL: form.attr («действие»), тип: 'POST', данные: form.serialize() + "& стр =" + 1 + "& itemsPerPage =" + 10, Datatype: 'JSON', кэша:. ложно }) успех (функция (данные) { обратный вызов (данные); }); Но поскольку у меня есть страница и внутри params itemsPerPage Variable – oscar
Вы можете использовать инструменты IE9, dev (F12) и захватить запрос (щелкнув вкладку Nework и нажав кнопку «Начать захват». Входы, такие как HTTP-запрос, не имеют параметр с именем «Params» в вашем случае. – Raghu
Может быть, ваш вызов ajax может быть передан params в теле запроса. Попробуйте @RequestBody в вашем контроллере. – Raghu