如何在Spring MVC中使用@RequestParam接收LIST类型的输入?

7 浏览
0 Comments

如何在Spring MVC中使用@RequestParam接收LIST类型的输入?

嗨,

我想在我的请求参数中使用一个数据列表,这里的"personIdCollection"是一个列表的集合,但是当我用Postman发送请求时,我得到了一个错误的请求。

这是我的代码。

控制器:

@PostMapping("/face-tag-data")
public String getFaceTaggedData(@RequestParam String projectId, @RequestParam List personIdCollection) {
    return null;
}

这是我的ajax请求:

var data = {};
data.personIdCollection = personIdCollection;
data.projectId = $("#projectId").val();
$.ajax({
    type: 'POST',
    url: contextPath + '/face-tag-data',
    data: data,
    success: function(resp) {
        console.log(resp);
    },
    failure: function(resp) {
        console.log(resp);
    }
});

0
0 Comments

问题的原因是想要在Spring MVC中使用@RequestParam来接收一个列表类型的输入。解决方法是定义一个包含列表的自定义类型,并在页面上将变量定义为数组,然后在控制器中将其作为列表类型接收。代码示例如下:

控制器代码:

(value="addSingleArticles", method=RequestMethod.POST)
public  String addSingleArticles(
        ArticleSubmitData pupilPackageData,
        HttpServletRequest request) {
    ... // 对数据进行处理
}

自定义类型代码:

public class ArticleSubmitData {
  private List
singleArticles; private List
packageArticle; private List
popupArticles; ... // getter & setter, inner classes etc. }

页面代码:

...
    
...

在页面上将变量定义为数组,并在控制器中将其作为列表类型接收,这样就可以解决使用@RequestParam接收列表类型输入的问题。

0