全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-18 6 分钟 ✍️ juanwangdev

数组与集合参数绑定

当请求包含多个同名参数时,SpringMVC可将其绑定到数组或集合。

数组绑定

基本类型数组

Java
@Controller
public class DemoController {

    @GetMapping("/delete")
    public String delete(@RequestParam("id") Integer[] ids) {
        for (Integer id : ids) {
            System.out.println("删除ID:" + id);
        }
        return "success";
    }
}

请求:/delete?id=1&id=2&id=3

字符串数组

Java
@GetMapping("/search")
public String search(@RequestParam("name") String[] names) {
    Arrays.stream(names).forEach(System.out::println);
    return "success";
}

请求:/search?name=张三&name=李四&name=王五

List集合绑定

List绑定需要@RequestParam注解:

Java
@GetMapping("/batch")
public String batch(@RequestParam("id") List<Integer> ids) {
    ids.forEach(System.out::println);
    return "success";
}

请求:/batch?id=1&id=2&id=3

复选框场景

HTML表单多选:

HTML
<form action="/hobby/save" method="post">
    <input type="checkbox" name="hobby" value="篮球"> 篮球
    <input type="checkbox" name="hobby" value="足球"> 足球
    <input type="checkbox" name="hobby" value="游泳"> 游泳
    <button type="submit">提交</button>
</form>
Java
@PostMapping("/hobby/save")
public String saveHobby(@RequestParam("hobby") String[] hobbies) {
    System.out.println("爱好:" + Arrays.toString(hobbies));
    return "success";
}

POJO中的集合

POJO对象包含集合属性:

Java
public class User {
    private String username;
    private List<String> hobbies;

    // getter/setter
}

请求:/user/save?username=张三&hobbies=篮球&hobbies=足球

Java
@PostMapping("/user/save")
public String saveUser(User user) {
    return "success";
}

List参数必须使用@RequestParam注解,数组可省略。

要点总结

  • 多个同名参数自动绑定到数组或List
  • 数组绑定:直接声明数组类型
  • List绑定:必须加@RequestParam注解
  • POJO中的集合属性可直接绑定
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 复杂对象参数
下一篇 → 日期类型转换进阶
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码