使用@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,输出299: *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风格的编程
原文:http://www.cnblogs.com/FFFFF/p/4624140.html