spring boot (三)之URL向Controller类传递参数

一般有两种方法,也是通过两种注解哎是首先的。

1、 @ParamVariable
    这个注解是用来获取URL中的参数的值的
    如下面的代码:
    @RequestMapping("/users/{username}")
    @ResponseBody
    public String getUser(@PathVariable String username)
    {
        return "name";
    }
    这样,该参数就可以传递到方法里,注意,这里的参数名要与URL中设置的名字要一样。
    当定义多个URL变量时,spring能够根据名字自动赋值对应的函数参数值,当然也可以通过 该注解显式地表明具体的URL变量值。
    另外可以通过正则表达式来规定合格的URL,不合格的spring MVC框架会返回异常。

2、 @RequestParam

    我们经常会在网页的URL中看到其中附带着一些参数信息,如带着id等于多少,content为什么等等,这个就是明显的带着参数的,因此可以使用 @RequestParam 来修饰。例如,客户端发出一个请求,URL为:www:xxx/xxx?id=value1&content=value2。然后我们的控制端就需要访问到value1 和 value2 。因此我们可以这样设计控制类:
    @GetMapping("/blogs")
    @ResponseBody
    public String getId(@RequestParam("id")int id,@RequestParam("content")String content)
    {
        return "id"+content;
    }

    这样,上面的参数就可以传到控制类的方法中了。

    @PathVariable 和 @RequestParam 的区别
    通过上面的例子可以看出两者还是有着一定的区别的,具体的就不在细分析。
    另外,如果我们在 @RequestParam中定义了变量,但是URL并没有相应的参数,那么spring就会抛异常。则可以定义required属性。如:
    @RequestParam(name="id",required=false)  ,这个注解中的required属性默认为true,当然也可以设置一个默认的值,在后面添加defaultValue属性即可。


 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值