@RequestParams,@QueryParam,@PathParam,@Pathvariable四个注解的区别

我们再使用mvc开发controller传参时经常看到这几个注解@RequestParam、@QueryParam、@PathParam和@PathVariable都可以实现,那她们主要有什么区别呢?

  • @PathVariable是路径传参
    类似url/{version}{id}这样的
    我们看PathVariable源码,他有三个参数
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PathVariable {
    @AliasFor("name")
    String value() default "";

    @AliasFor("value")
    String name() default "";

    boolean required() default true;
}
  • RequestParam和QueryParam以及@PathParam都是采用键值对的方式取值,方法名后面加 “?” 开始,多个参数用 “&” 拼接,格式为:
    /getInfos?pageNum=1&pageSize=10&var2=111
    PathParam 源码只有value是必填,(@PathParam(value = “var2”) String var2)
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.PARAMETER})
public @interface PathParam {
    String value();
}
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
    @AliasFor("name")
    String value() default "";

    @AliasFor("value")
    String name() default "";

    boolean required() default true;

    String defaultValue() default "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n";
}
@Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface QueryParam {
    String value();
}

这两个注解用法,QueryParam只有一个属性,必填,RequestParam有三个参数不必填(@RequestParam(name = “var3”,required = true,defaultValue = “1”) String var3)
以上就是4个注解的区别啦.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值