关于@PathVariable与@RequestParam的使用区别

@PathVariable

用于restful风格的请求,比如get请求:/user/1

方法中形参将会接收到1

@RestController
@RequestMapping("/user")
public class Test{

    @GetMapping("{id1}")//{id1}是占位符
    public void t(@PathVariable("id1") int id){//将占位符和参数进行绑定

    //如果占位符和参数同名,则直接写@PathVariable即可

    }

}

@RequestParam

@RequestParam注解一共有三个属性:

value:指定为形参赋值的请求参数的参数名

required:设置是否必须传输此请求参数,默认值为true

若设置为true时,则当前请求必须传输value所指定的请求参数,若没有传输该请求参数,且没有设置defaultValue属性,则页面报错400:Required String parameter ‘xxx’ is not present;若设置为false,则当前请求不是必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null

defaultValue:不管required属性值为true或false,当value所指定的请求参数没有传输或传输的值为""时,则使用默认值为形参赋值

用于键值对传值的请求地址,比如:user?id=123

方法中形参将会接收到123

@Controller
@RequestMapping("/user")
public class Test{

    @GetMapping
    public void t(@RequestParam(value="id", required=true) String id){
    
    }

}

只要你前台form表单中name属性和controller中参数写得一样就可以省略@RequestParam,可有如下写法

1.@RequestParam(value="id",required = true/false)
 
2.@RequestParam(value="id") 默认为required = true
 
3.@RequestParam("id") 
 
4.@RequestParam
 
5.省略不写注解 @RequestParam

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值