【springmvc】@RequestParam详解以及加与不加的区别

https://blog.csdn.net/a447332241/article/details/76714148

 

以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数

 

下面我们来区分一下加与不加的区别

这里有两种写法

 

 

 
  1. @RequestMapping("/list")

  2. public String test(@RequestParam Long parentId) {

  3.  
  4. }


 

 

 
  1. @RequestMapping("/list")

  2. public String test( Long parentId) {

  3.  
  4. }


第一种必须带有参数,也就是说你直接输入localhost:8080/list 会报错 不会执行方法 只能输入localhost:8080/list?parentId=? 才能执行相应的方法

第二种 可带参数也可不带参数  就是说你输入  localhost:8080/list  以及 localhost:8080/list?parentId=?  方法都能执行

 

当然你也可以设置 @RequestParam 里面的required为false(默认为true 代表必须带参数) 这样就跟第二种是一样的了

如下:

 

 
  1. @RequestMapping("/list")

  2. public String test(@RequestParam(required=false) Long parentId) {

  3. .....

  4. }

 

当然你还可以设置里面的defaultValue的属性

如下:

 
  1. @RequestMapping("/list")

  2. public String test(@RequestParam(defaultValue="0") Long parentId) {

  3. ...

  4. }

  5.  
  6.  
  7.  

这样在地址里面也可以不带参数,如果带了参数会接收,不带参数会默认为0

 

里面还有一个value属性也讲一下, 前面所有的方法 传入的参数必须为parentId 才能接收到值

但是如果你加了value属性

 

 
  1. @RequestMapping("/list")

  2. public String test(@RequestParam(value="id") Long parentId) {

  3. ..

  4. }

  5.  
  6.  


这样会用id 代替parentId  也就是说你地址里面传入的参数名称为id localhost:8080/list?id=? 这种

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值