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

复杂对象参数

SpringMVC支持嵌套对象、集合等复杂对象结构的参数绑定。

嵌套对象

定义嵌套结构

Java
public class Address {
    private String province;
    private String city;
    private String street;

    // getter/setter
}

public class User {
    private Integer id;
    private String username;
    private Address address;  // 嵌套对象

    // getter/setter
}

请求参数格式

请求:/user/save?id=1&username=张三&address.province=北京&address.city=北京&address.street=朝阳路

Java
@PostMapping("/user/save")
public String saveUser(User user) {
    System.out.println(user.getAddress().getProvince());
    return "success";
}

多层嵌套

支持更深层级的嵌套:

Java
public class Country {
    private String name;
}

public class Address {
    private String city;
    private Country country;  // 二层嵌套
}

public class User {
    private Address address;
}

请求参数:address.country.name=中国

集合属性

List属性

Java
public class Order {
    private Integer id;
    private List<Item> items;

    // getter/setter
}

public class Item {
    private String name;
    private Integer quantity;
}

请求参数:

Java
id=100
&items[0].name=商品A
&items[0].quantity=2
&items[1].name=商品B
&items[1].quantity=1

Map属性

HTML
public class Config {
    private Map<String, String> properties;
}

请求参数:

text
properties[key1]=value1
&properties[key2]=value2

表单示例

text
<form action="/order/save" method="post">
    <input type="text" name="id" value="100">
    <input type="text" name="items[0].name" value="商品A">
    <input type="text" name="items[0].quantity" value="2">
    <input type="text" name="items[1].name" value="商品B">
    <input type="text" name="items[1].quantity" value="1">
    <button type="submit">提交</button>
</form>

注意事项

  • 嵌套属性使用点号分隔:对象.属性
  • 集合使用索引:list[0].属性
  • Map使用key:map[key]
  • POJO必须有无参构造函数和getter/setter

嵌套对象必须初始化或提供getter方法让Spring创建实例。

要点总结

  • 嵌套对象:对象.属性格式传参
  • 集合元素:list[索引].属性格式
  • Map元素:map[key]格式
  • 确保POJO有无参构造和getter/setter

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

← 上一篇 参数绑定注解
下一篇 → 数组与集合参数绑定
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

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

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