我有一个javascript函数,可以发布控制器API。这是代码:
exports.importList = function (req, res) {
res.setHeader('Content-Type', 'application/json');
var agencyId = req.user.agency_id;
var userId = req.user.id;
data = {
id_list: req.body.ids,
remoteHost:'127.0.0.1',
userId : userId,
agencyId:agencyId
};
call = '/ilist/importer/list/'; //Spring route
fetcher.post(call, 'post', data, function (err, result) {
console.log(data);
})
}
req.body.ids
是一个字符串值数组,因此我要发送给Controller的数据具有以下结构:
{ id_list: [ '2147041', '2155271' ],
remoteHost: '127.0.0.1',
userId: 'user',
agencyId: 1 }
我的控制器方法:
@RequestMapping(value="/list/", method = RequestMethod.POST, headers = "Accept=application/json")
public @ResponseBody RemaxResponse importPropertyList(@RequestBody ArrayList<String> data ) {
List<Long> ids = new ArrayList<>();
for (String id : data.id_list) {
ids.add(Long.valueOf(id));
}
response = ilistIImporterService.importPropertyList(ids);
return response;
}
我需要在Controller中接收字符串数组并将其存储在整数数组中,其他参数存储在整数变量中。 现在,我发现我从javascript发送的数据是不正确的。这样做的正确方法是什么?
答案 0 :(得分:3)
如果你想发送整个对象,我会创建一个pojo并将其用作ggplot(mtcars, aes(disp, mpg)) +
geom_point() +
theme_bw() +
theme(axis.text.x=element_text(size=rel(0.5), angle=90))
之类的
@RequestBody
现在spring可以很好地解析给定的pojo,你只需使用public @ResponseBody RemaxResponse importPropertyList(@RequestBody RequestObject data ) {
来获取所需的数据。
pojo可能看起来像
getters