У меня есть уже работающий JavaScript AJAX POST, как это: боковойВозможно ли передать несколько параметров для javascript JSON AJAX POST в Spring MVC-контроллер?
Клиент:
<script language="JavaScript" type="text/javascript">
var column = "test1";
var filterType = 1;
var values = [];
var filter = { "column" : column, "filterType" : filterType, "values": values};
var filter2 = { "column" : column, "filterType" : filterType, "values": values};
filter2.column = "test2";
var filters = new Array();
filters[0] = filter;
filters[1] = filter2;
$.ajax({
url: "${pageContext.request.contextPath}/api/user_administration/get",
data: JSON.stringify(filters),
type: "POST",
beforeSend: function(xhr)
{
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
},
success: function(user)
{
}
});
</script>
стороне сервера:
@RequestMapping(value = "user_administration/get", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public List<User> get(@RequestBody ColumnFilter[] filters)
{
//do something
return userService.getAll();
}
Теперь я хочу передать два или более параметров. Что-то вроде этого:
@RequestMapping(value = "user_administration/get", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public List<User> get(@RequestBody ColumnFilter[] filters, @RequestBody ColumnSorter[] sorters)
{
//do something
return userService.getAll();
}
Можно ли это достичь? Как?
(я уже знаю, что я могу просто инкапсулировать их в другой объект/класс/объекта)
Я думаю, вы можете инкапсулировать его, как вы сказали, или добавить другие параметры для запроса заголовка, а затем вы можете получить к ним доступ по имени параметра , –
@ jakub.petr рассказать мне больше о «других параметрах для запроса заголовка» – William
JS: http://stackoverflow.com/questions/3258645/pass-request-headers-in-a-jquery-ajax-get-call Spring : http://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch16s11.html Лично я считаю, что лучше инкапсулировать его на другой объект и передать в requestBody –