SpringMVC注解@RequestParam

  • RequestParam 映射请求参数
  • required 表示是否必须,默认为true
  • defaultValue 请求参数的默认值

http://localhost:9001/demo/id/get

required = false

   @GetMapping("/{id}/get")
    public List<Article> getList(@PathVariable("id") String id, @RequestParam(value = "param",required = false) int param) {//int应改为Integer
        System.out.println(param);//运行时报错
        System.out.println(id);
        return mongoTemplate.findAll(Article.class);
    }

当无参数param时,请求出错

{
    "timestamp": "2019-07-17T06:41:00.734+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "Optional int parameter 'param' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.",
    "path": "/demo/id/get"
}

原因是required = false时,若url中param参数不存在,则param变量赋值为null,但如果param的类型不是引用类型,则会报错。

required = true

当defaultValue = "aaa"时,若url中param参数不存在,则默认为aaa

@GetMapping("/{id}/get")
    public List<Article> getList(@PathVariable("id") String id, @RequestParam(value = "param",defaultValue = "aaa",required = true) String param) {
        System.out.println(param);
        System.out.println(id);
        return mongoTemplate.findAll(Article.class);
    }

若无defaultValue = "aaa"则报错

{
    "timestamp": "2019-07-17T06:56:11.836+0000",
    "status": 400,
    "error": "Bad Request",
    "message": "Required String parameter 'param' is not present",
    "path": "/demo/id/get"
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值