今天做项目在请求前端参数时发生了错误,解决后才明白这两个注解的区别,如下:
1.requestparam
由图可知,这样接收前端传入的参数是没问问题的,当我用下面的请求地址访问时,便报错了
(当时访问的路径是localhost:8080/hello/world2/15,图截错了)
而当我将注解换为pathvariable后,问题便得到了解决
查阅资料可知
没有深入了解,大概明白了
@pathvariable 是用来接收url路径上的参数
@RequestParam 是接收参数请求的params(就是访问地址中问号后面的内容)
浏览器向服务器传参有两种方式,一是在通过get请求,在路径后加问号携带参数,如/xxx?id=1。另一种是通过post请求,在request请求体中携带表单中的参数,这种参数在路径上是看不到的。这两种方式所传的参数,在服务端都可以通过request.getParameter(参数名)这样的方式来获取。而@RequestParam注解,就相当于是request.getParameter(),是从request对象中获取参数的。有时,我们也愿意利用请求路径本身来传参,即将参数拼到路径里,如/xxx/1,这里的1就是参数,那么在解析路径的时候,也是能获取到这个参数的。而@PathVarible就是解析路径,从中获得对应级次的参数