两者都是从request请求中接收数据,但是方式不同,区别如下:
ReaquestParam(与QueryParam作用相同)
@GetMapping("/findId")
public JsonResult findByPathId(@RequestParam Integer Id) {
ReaquestParam有属性required,当required =true表示这个参数必须传入,当required =false时表示这个参数可不必传入
@RequestMapping ( "requestParam" )
public String testRequestParam( @RequestParam(required=false) String name, @RequestParam ( "age" ) int age) {
return "requestParam" ;
}
在上面代码中我们指定了参数name 的required 的属性为false ,而没有指定age 的required 属性,这时候如果我们访问/requestParam.do而没有传递参数的时候,系统就会抛出异常,因为age 参数是必须存在的,而我们没有指定。而如果我们访问/requestParam.do?age=1 的时候就可以正常访问,因为我们传递了必须的参数age ,而参数name 是非必须的,不传递也可以。
PathVariable
绑定路径传入的值到参数上,解决前后端参数名不一致问题
@GetMapping("/findId/{id}")
public JsonResult findByPathId(@PathVariable(value="id") Integer Id) {
@PathParam
这个注解是和spring的pathVariable是一样的,都是基于url的,但这个是jboss包下的