将数组从javascript发送到Spring Controller

时间:2017-11-06 19:50:20

标签: javascript spring

我有一个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发送的数据是不正确的。这样做的正确方法是什么?

1 个答案:

答案 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