1、路径传参
前端传一个参数:123

后端接收一个参数:123
// /{}是必须写的,id是自定义的
// @PathVariable 这个注解也是必须写的,否则接不到参数
@GetMapping("/{id}")
//使用什么类型去接收id的值,要看你后端需要什么类型
public void t1(@PathVariable String id) {
log.info(id);
}
前端传多个参数:123&456

后端接收多个参数:123&456
和接收一个参数一样,只是有几个参数@PathVariable注解就要写几个
// /{}是必须写的,id是自定义的
// @PathVariable 这个注解也是必须写的,否则接不到参数
@GetMapping("/{id}/{num}")
//使用什么类型去接收id的值,要看你后端需要什么类型
public void t1(@PathVariable String id,@PathVariable String num) {
log.info(id + num);
}
2、普通传参
前端传参

后端接收
//首先要明确一点,前端访问的后端路径中 ?问号后边的都是参数
//@RequestParam 这个注解可以加,也可以不加
//当需要这个注解底层的一些功能时,需要加,否则,可以不加,不会出错
//value 这个可以改变前端传递参数的名字,"id" 他和前端的参数名一样即可,String id 这个id可以随便改名
//如果不加@RequestParam 前端传参时,name可以不传,不会报错
//但是加上@RequestParam 前端就必须传name的值,否则就i会出错
//required = false 加上他,就表示前端传参时,name可以不传,不会报错
@GetMapping("/testParam")
public void t2(@RequestParam(value = "id") String id,@RequestParam(required = false) String name) {
log.info(id + name);
}
3、post传参
第一种情况:前端用application/json,也就是json格式传参

后端接收
//如果前端是以json格式传递参数
//那么在接收请求的时候,需要加上@RequestBody注解,值才能成功传递到后端
//如果不加就是null对象,因为item也会被初始化
//item是一个封装的实体类,建议在接收post请求时根据前端传递的json内容封装成实体类接收
@PostMapping("/testParam")
public void t3(@RequestBody Item item) {
log.info(item.getId()+item.getName());
}
第二种情况:前端使用form-data格式,也就是表单格式传参

后端接收
//如果前端使用form-data的格式传参,不可以写@RequestBody注解,否则会报错
//item是一个封装的实体类,建议在接收post请求时根据前端传递的json内容封装成实体类接收
@PostMapping("/testParam")
public void t4(Item item) {
log.info(item.getId()+item.getName());
}
4、集合&数组
前端传递的参数

后端可以有三种接收方式
第一种:使用list集合接收
//接收前端以逗号分隔的多个参数,使用集合必须加上@RequestParam
@PostMapping("/testParam")
public void t5(@RequestParam List<Long> ids) {
log.info("ids",ids);
}
第二种:使用数组接收
//使用数组,加不加@RequestParam注解,都可以
@PostMapping("/testParam")
public void t6(Integer[] ids) {
log.info("ids",ids);
}
第三种:使用可变参数接收
//使用可变参数,接收到的也是数组类型,也可以不加@RequestParam注解
@PostMapping("/testParam")
public void t6(Integer ...ids) {
log.info("ids",ids);
}
本文详细介绍了前后端如何通过不同方式传递参数,包括路径传参、普通GET请求传参、POST请求中的JSON及表单传参,并展示了如何在后端接收这些参数。
2775

被折叠的 条评论
为什么被折叠?



