@RequestParam与@PathVariable的区别

spring MVC中,两者的作用都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,URL写法不同。

使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值

使用@PathVariable时,URL是这样的:http://host:port/path/参数值

例如:

  1. @RequestMapping(value="/user",method = RequestMethod.GET)
  2. public @ResponseBody
  3. User printUser(@RequestParam(value = "id", required = false, defaultValue = "0")
  4. int id) {
  5. User user = new User();
  6. user = userService.getUserById(id);
  7. return user;
  8. }
  9. @RequestMapping(value="/user/{id:\\d+}",method = RequestMethod.GET)
  10. public @ResponseBody
  11. User printUser2(@PathVariable int id) {
  12. User user = new User();
  13. user = userService.getUserById(id);
  14. return user;
  15. }

上面两个方法,访问路径分别如下:

@RequestParam与@PathVariable的区别

@RequestParam与@PathVariable的区别

上一篇:hdu 2767


下一篇:关于MyBatis mapper的insert, update, delete返回值