@RequestParam和@PathVariable的区别和使用

本文详细介绍了Spring MVC中@RequestParam和@PathVariable的区别和使用。@RequestParam用于处理URL查询参数,@PathVariable则用于获取路径变量。文章通过示例说明了两者在参数绑定、默认值、是否必需等方面的不同,并提供了实际的请求URL来辅助理解。

@RequestParam和@PathVariable的区别和使用

请求路径上的区别:很明显一个是 https:url ?键值对,一个是https:url /参数,区别很明显

@PathVariable主要用于接收http://host:port/path/{参数值}数据。

@RequestParam主要用于接收http://host:port/path?参数名=参数值数据,这里后面也可以不跟参数值。

@RequestParam用于获取参数,可获取?username="20"这种?后面的参数值

如:访问路径为:http://localhost:8080/billing/pay/update?sys_account_id=20&newPassword1=2222&newPassword1=45516

当传入参数的名字和方法中的名字相同时,可以直接@RequestParam String sys_account_id,如请求 url:http://localhost:8080/billing/pay/update?sys_account_id=20

如果请求的参数名和方法名不一致时:则:@RequestParam(name = "11"  String sys_account_id,这样子就可以将abc和sys_account_id映射上

20和请求带过来的参数名一样,如:http://localhost:8080/billing/pay/update?sys_account_id=20&newPassword1=2222&newPassword1=45516;

@RequestParam(value = "sys_account_id", required = false, defaultValue = "1")

@RequestParam 支持下面四种参数

defaultValue 如果本次请求没有携带这个参数,或者参数为空,那么就会启用默认值
name 绑定本次参数的名称,要跟URL上面的一样
required 传入的参数是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
value 跟name一样的作用,是name属性的一个别名

使用@PathVariable接收参数,参数值需要在url进行占位, 前端传参的URL:url = “/main/mm/am/${Id}/${name}”

如:http://localhost:8080/billing/pay/shareOfficialHistory/111/83

 

直接写@PathVariable String sys_account_id也是可以的,但是参数名和sys_account_id要一致才行,否则就要这样@PathVariable("111") String sys_account_id,建立映射关系,和上面其实差不多

 

PathVariable 注解的required = false 表明参数不是必需的

@PathVariable(name = "sys_account_id",required = true) ,不加上name会报错的,这里的name和value作用应该也是一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值