一般有两种方法,也是通过两种注解哎是首先的。
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属性即可。