【SpringMVC】Controller的多种方式接收请求参数
- 人工智能
- 2025-08-28 12:18:03

在Spring MVC中,控制器方法可以通过多种方式接收请求参数。以下是最常见的参数传递方法: 路径变量(Path Variables):
使用@PathVariable注解从URL路径中获取参数。 示例:对于URL /dishes/{id}:
@GetMapping("/dishes/{id}") public ResponseEntity<Result> getById(@PathVariable Long id) { // 业务逻辑 } 查询参数(Query Parameters):使用@RequestParam注解处理查询字符串中的参数。 示例:对于URL /dishes?name=salad:
@GetMapping("/dishes") public ResponseEntity<Result> getByName(@RequestParam String name) { // 业务逻辑 } 请求体(Request Body):使用@RequestBody注解将请求体中的JSON数据转换为Java对象。 示例:
@PostMapping("/dishes") public ResponseEntity<Result> save(@RequestBody DishDTO dishDTO) { // 业务逻辑 } 请求头(Request Headers):使用@RequestHeader注解获取请求头中的数据。 示例:
@GetMapping("/dishes") public ResponseEntity<Result> getDishes(@RequestHeader("Authorization") String authToken) { // 业务逻辑 } Cookie值:使用@CookieValue注解从请求的Cookie中获取特定值。 示例:
@GetMapping("/dishes") public ResponseEntity<Result> getDishes(@CookieValue("sessionId") String sessionId) { // 业务逻辑 } 表单参数(Form Parameters):类似于处理查询参数,使用@RequestParam来处理表单提交的数据。常用于application/x- -form-urlencoded编码。 示例:
@PostMapping("/dishes") public ResponseEntity<Result> handleForm(@RequestParam String name, @RequestParam String description) { // 业务逻辑 } Model Attribute:使用@ModelAttribute可以将请求参数绑定到一个Java对象,通常用于表单数据的绑定和数据预填充。 示例:
@PostMapping("/dishes") public ResponseEntity<Result> createDish(@ModelAttribute DishDTO dishDTO) { // 业务逻辑 } Session Attributes:使用@SessionAttribute注解从HTTPSession获取数据。 示例:
@GetMapping("/dishes") public ResponseEntity<Result> getFromSession(@SessionAttribute("user") User user) { // 业务逻辑 } 补充 文件上传 @PostMapping("/upload") public Result<String> upload(MultipartFile file){ }在Spring MVC中,处理文件上传时,确实可以不显式地使用@RequestParam注解来绑定MultipartFile参数,只要参数名称与表单上传的字段名称一致。Spring会自动匹配表单字段名称与控制器方法参数名称。
@PostMapping("/upload") public ResponseEntity<String> upload(@RequestParam("file") MultipartFile file) { }【SpringMVC】Controller的多种方式接收请求参数由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【SpringMVC】Controller的多种方式接收请求参数”