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

  • Post author:
  • Post category:其他


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

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属性即可。



版权声明:本文为qq_40133908原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。