在前文中我介绍了 Controller 如何接收通过 GET 方式传递过来的参数(点击查看),下面接着演示如何接收通过 POST 方式传递过来的参数。
一、接收 Form 表单数据
1,基本的接收方法
(1)下面样例 Controller 接收form-data格式的 POST 数据:
package com.example.demo;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@PostMapping("/hello")
public String hello(@RequestParam("name") String name,
@RequestParam("age") Integer age) {
return "name:" + name + "\nage:" + age;
}
}
(2)下面是一个简单的测试样例:
2,参数没有传递的情况
(1)如果没有传递参数 Controller 将会报错,这个同样有如下两种解决办法:
使用required = false标注参数是非必须的。
使用 defaultValue 给参数指定个默认值。
package com.example.demo;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@PostMapping("/hello")
public String hello(@RequestParam(name = "name", defaultValue = "xxx") String name,
@RequestParam(name = "age", required = false) Integer age) {
return "name:" + name + "\nage:" + age;
}
}
(2)下面是一个简单的测试样例:
3,使用 map 来接收参数
(1)Controller 还可以直接使用 map 来接收所有的请求参数:
package com.example.demo;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestContro