本文引用https://blog.youkuaiyun.com/qq_31580425/article/details/124941626
get请求
这种情况使用实体类接收参数,不需要使用@RequestBody。然而当请求为发送的json串时,则需要使用注解。
下面两种方式都可以
http://localhost:8080/method03/id=“10”&name=“张三”&age=“18”
@RequestMapping("/getUser01")
public String method01(Integer id, String name, Integer age) {
User user = new User();
user.setMoney(id);
user.setName(name);
user.setAge(agg);// 获取不到agg的值,因为传递的是age,参数名称一定要一致
return JSON.toJSONString(user);
}
// @RequestParam(value = "money", required = false) 中required 为true时接收请求时会根据value去url寻找同名参数,如果没找到会报错;
@RequestMapping(value = "/getUser02")
public String method02(@RequestParam(value = "id", required = false) Integer id,
@RequestParam("name") String name,
@RequestParam("age") Integer age
) {
User user = new User();
user.setMoney(id);
user.setName(name);
user.setAge(age);
return JSON.toJSONString(user);
}
// 两种方式都可以
// 直接通过实体接收参数
// 参数名与实体中的属性名一致即可自动映射到实体属性中
@RequestMapping("/getUser01")
public String method02(User user) {
// 参数名称要和字段对应
return JSON.toJSONString(user);
}
//@ModelAttribute 注解主要作用是自动将数据暴露为模型数据用于视图页面展示时使用,比如此处注解value为user, 前端视图就可以通过${user.name}来获取绑定的命令对象的属性
@RequestMapping("/getUser02")
public String method05(@ModelAttribute("user") User user) {
return JSON.toJSONString(user);
}
post请求
http://localhost:8080/method03
发送的数据为json串
下面两种方式都可以
@RequestMapping(value = "/method01")
public String method03(@RequestBody User user) {
return JSON.toJSONString(user);
}
import com.fasterxml.jackson.databind.ObjectMapper;
@Autowired
private ObjectMapper objectMapper;
@PostMapping("/list/page")
public String listByPage(@RequestParam Map<String, Object> map) {
User u = objectMapper.readValue(map, User.class);
return JSON.toJSONString(u);
}
delete请求
数组时
加上JSON.stringfify时报400错误
let arrayId = [1,2,3]
_axios({
method: 'delete',
url: '/dept/delete',
data: arrayId
}).then(result=>{
//this.findList()
})
后端为:
@DeleteMapping("/delete")
public R<Boolean> delete(@RequestBody List<Integer> value) {
//或者
@DeleteMapping("/delete")
public R<Boolean> delete(@RequestBody String[] value) {
都行
当没有@RequesBody时接收不到参数
restful风格
_axios({
method: 'delete',
url: '/dept/delete/'+row.id
}).then(result=>{
//this.findList()
})
@DeleteMapping("/delete/{id}")
public R<Boolean> delete(@PathVariable("id") Integer deptId) {
RestFul 风格
这只是一种传参格式,适用与get,post,delete,put都可使用
@RequestMapping(value = {"/method07/{id}/{name}/{age}","/method07/{id}/{name}"})
public String method07(@PathVariable("id", required = true) Integer id
@PathVariable("name") String name,
@PathVariable(value = "age") Integer age,
) {
User user = new User();
user.setMoney(id);
user.setName(name);
user.setAge(age);
return JSON.toJSONString(user);
}