@Requestparam,@Pathvariable,@Pathparam的使用区别

SpringBoot---@Pathvariable

@Pathvariable主要是通过/来传输参数,本质是从url模板来填充

请求路径:

后台接收方式:

@RequestMapping("/test")
public class DmTestApiController{
    @GetMapping("/testPathVariable/{id}")
    public void testPathVariable(@PathVariable(value = "id") String id){
        System.out.println("通过@PathVariable获取参数"+id);
    }
value:用来绑定路径中所传递的值,如果参数名称与路径中所传名称相同则不需要使用value属性,如果不同则需要通过value属性去绑定
@Pathparam

@Pathparam主要是通过?来传参数,本质是从url模板来填充

请求路径:

通过拼接键值来传递参数

后台接收方式:

@RequestMapping("/mspJRApi/test")
public class DmTestApiController extends BaseController
{
    @GetMapping("/testPathParam")
    public void testPathParam(@PathParam(value = "id") String id){
        System.out.println("通过@PathParam获取参数"+id);
    }
他的参数不会写在后端的请求路径上,在请求发出时会拼接到请求路径,所以要求value属性的值要和其request中的键相同
@Requestparam

@Requestparam也是通过?来传参数,本质是从url模板来填充

对于@Requestparam注解主要有三个参数:

  1. value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value=“page”,则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据

  1. required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。

  1. defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。注意默认值可以使用SpEL表达式,如"#{systemProperties[‘java.vm.version’]}

请求路径:

后台接受方式:

@RestController
@RequestMapping("/mspJRApi/test")
public class DemoTest {
    
    @GetMapping("/testRequestParam")
    public void testRequestParam(@RequestParam(value = "id") int id){
        System.out.println("通过@RequestParam获取到的参数:"+id);
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值