package com.example.controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
// 定义一个用户实体类
class User {
private String name;
private int age;
private String email;
// Getter 和 Setter 方法
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
}
@RestController
@RequestMapping("/api")
public class UserController {
// 1. 接收表单参数(通过@RequestParam)
@PostMapping("/user/form")
public String createUserForm(
@RequestParam String name,
@RequestParam int age,
@RequestParam String email) {
return "接收到表单参数: name=" + name + ", age=" + age + ", email=" + email;
}
// 2. 接收JSON对象参数(通过@RequestBody)
@PostMapping("/user/json")
public String createUserJson(@RequestBody User user) {
return "接收到JSON参数: name=" + user.getName() + ", age=" + user.getAge() + ", email=" + user.getEmail();
}
// 3. 接收JSON数组参数(通过@RequestBody)
@PostMapping("/users/json")
public String createUsersJson(@RequestBody List<User> users) {
return "接收到用户列表,共 " + users.size() + " 个用户";
}
// 4. 接收混合参数(表单 + JSON)
@PostMapping("/user/mixed")
public String createUserMixed(
@RequestParam String type,
@RequestBody User user) {
return "接收到混合参数: type=" + type + ", user=" + user.getName();
}
}
代码说明:1. 该示例展示了在Spring Boot中处理POST请求的四种常见方式。
2. 使用@RequestParam接收URL参数或表单数据。
3. 使用@RequestBody接收JSON格式的请求体数据。
4. 支持单个对象和对象列表的接收。
5. 可以同时处理表单和JSON混合参数。