首页 > 编程语言 > 详细

SpringMVC(三)@PathVariable

时间:2015-07-06 14:03:50      阅读:342      评论:0      收藏:0      [点我收藏+]

使用@PathVariable可以快速的访问,URL中的部分内容。

①. 在@RequestMapping的value中使用URI template({变量名}),然后在@RequestMapping注解方法的需要绑定的参数前,使用@PathVariable指定变量名(如果变量名和参数名一致也可以不指定),从而将URL中的值绑定到参数上。

代码:

   1: @RequestMapping("/testPathVariable")
   2: @Controller
   3: public class TestPathVariable {
   4:  
   5:     /*
   6:     * URI模板指定了一个变量名为id的变量,当控制器处理请求时会将 id 替换为正确的值
   7:     *
   8:     * 若请求为 testPathVariable/user/29,则uid=29,输出29
   9:     *
  10:     * */
  11:     @RequestMapping("/user/{id}")
  12:     public String testPathVariable(@PathVariable("id") Integer uid) {
  13:         System.out.println(uid);
  14:         return "success";
  15:     }
  16:  
  17: }

URL:

   1: <a href="testPathVariable/user/29">testPathVariable user 29</a>

②. 一个方法可以有多个@PathVriable注解

URI template 可以这样,全部在方法上

代码:

   1: @RequestMapping("/testPathVariable")
   2: @Controller
   3: public class TestPathVariable {
   4:  
   5:     @RequestMapping("/user/{uid}/book/{bid}")
   6:     public String testMultiplePathVariable(@PathVariable("uid") Integer uid,@PathVariable("bid") Integer bid) {
   7:         System.out.println(uid);
   8:         System.out.println(bid);
   9:         return "success";
  10:     }
  11:  
  12: }

URL:

   1: <a href="testPathVariable/user/29/book/101">testPathVariable user 29 book 101</a>

URI template还可以这样, 加在类和方法上

代码:

   1: @RequestMapping("/testPathVariable/user/{uid}")
   2: @Controller
   3: public class TestPathVariable {
   4:  
   5:     @RequestMapping("/book/{bid}")
   6:     public String testMultiplePathVariable(@PathVariable("uid") Integer uid, @PathVariable("bid") Integer bid) {
   7:  
   8:         System.out.println(uid);
   9:         System.out.println(bid);
  10:         return "success";
  11:     }
  12:  
  13: }

URL:

   1: <a href="testPathVariable/user/29/book/101">testPathVariable user 29 book 101</a>

@PathVariable 还可以使用在 map 参数上,但是必须配置<mvc:annotation-driven />

代码:

   1: @RequestMapping("/testPathVariable/user/{uid}")
   2: @Controller
   3: public class TestPathVariable {
   4:  
   5:     @RequestMapping("/book/{bid}")
   6:     public String testMultiplePathVariable_Map(@PathVariable Map<String, String> map) {
   7:         System.out.println(map.get("uid"));
   8:         System.out.println(map.get("bid"));
   9:         return "success";
  10:     }
  11:     
  12: }

URL:

   1: <a href="testPathVariable/user/29/book/101">testPathVariable user 29 book 101</a>

applicationContext.xml

   1: <mvc:annotation-driven></mvc:annotation-driven>

使用@PathVariable可以让我们进行REST风格的编程

SpringMVC(三)@PathVariable

原文:http://www.cnblogs.com/FFFFF/p/4624140.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!