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

文章详细介绍了在SpringBoot中,@PathVariable用于从URL路径中获取参数,@RequestParam用于处理查询参数,而@Pathparam与@PathVariable类似,也是从URL路径获取参数,但通常用于RESTfulAPI。这三个注解都在处理HTTP请求的不同场景下发挥作用,分别展示了如何接收和使用这些参数。
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);
    }
}

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值