全部学科
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中的集合属性可直接绑定

📝 发现内容有误?点击此处直接编辑

← 上一篇 复杂对象参数
下一篇 → 日期类型转换基础
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库