@RequestParam,@RequestBody,@PathVariable三个绑定参数的注解记录

@RequestParam:我们可以使用@RequestParam从请求中提取查询参数,表单参数甚至文件,指示方法参数应绑定到Web请求参数的注释,我们可以从中看到,它提供了4个参数给我们选择,其中value(),和name()互为别名.

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";
}

defaultValue:
当没有提供request参数或值为空时,用作回退的默认值
value(别名name):
要绑定到的请求参数的名称
required
是否需要该参数
用法一般都是如下:

@RequestParam(value = "请求参数",required = true,defaultValue = "默认值")

通过处理前端发送的Content-Type 为 application/x-www-form-urlencoded 编码的内容

@RequestBody:指示方法参数的注释应绑定到Web请求的正文。请求的正文通过传递,HttpMessageConverter以根据请求的内容类型解析method参数,它拥有一个参数

public @interface RequestBody {
    boolean required() default true;
}

用法实例为

@RequestBody JSONObject jsonparam

该注解接收的参数是来自requestBody中,通过处理前端发送过来的非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如我这里用作于接收一大堆json数据的情况

在这里插入图片描述
传过来的请求头中参数Content-Type : application/json的数据

@PathVariable:指示方法参数应绑定到URI模板变量的注释。支持带RequestMapping注释的处理程序方法。参数有三个,跟@RequestParam类似,但是它不提供**defaultValue()**默认值

public @interface PathVariable {
    @AliasFor("name")
    String value() default "";

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

    boolean required() default true;
}

正因为@PathVariable不提供默认值,所以一般来说不允许为空,但是如果你实在想要为空也是有方法的,只需要设置多个url,有参传有参的url,无参传另一个url,当你把required = false时,它可以自动传入另一个url,以此保证不报错.

示例用法:

@RequestMapping(value = "/url/{参数名}" ,"/url/url")
@PathVariable(required = false) String  参数名

学习记录,欢迎指出错误以及补充,谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值