SpringMVC系列: 注解@RequestMapping@PathVariable
Posted 小不点啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC系列: 注解@RequestMapping@PathVariable相关的知识,希望对你有一定的参考价值。
一、@RequestMapping
[email protected]除了能修饰方法,还能修饰类
(1)修饰类:提供初步的请求映射信息,相对于web请求的根目录
(2)修饰方法:提供进一步的细分映射信息
相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法处标记的URL相对于web应用的根目录
[email protected]的请求方式
@RequestMapping 的 value、method、params 及 heads 分别表示请求 URL、请求方法、请求参数及请求头的映射条
件,他们之间是与的关系,联合使用多个条件可让请求映射更加精确化。
3.Ant 风格资源地址支持 3 种匹配符:
– ?:匹配文件名中的一个字符
– *:匹配文件名中的任意字符
– **:** 匹配多层路径
? @RequestMapping 还支持 Ant 风格的 URL:
– /user/*/createUser: 匹配
/user/aaa/createUser、/user/bbb/createUser 等 URL
– /user/**/createUser: 匹配
/user/createUser、/user/aaa/bbb/createUser 等 URL
– /user/createUser??: 匹配
/user/createUseraa、/user/createUserbb 等 URL
1 package com.study.springmvc.handlers; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.RequestMethod; 6 7 @RequestMapping("/requestMappingTest") 8 @Controller 9 public class RequestMappingTest { 10 11 public static final String SUCCESS="success"; 12 /** 13 * [email protected]除了能修饰方法,还能修饰类 14 *(1)修饰类:提供初步的请求映射信息,相对于web请求的根目录 15 *(2)修饰方法:提供进一步的细分映射信息 16 * 相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法处标记的URL相对于web应用的根目录 17 * @return 成功 18 */ 19 @RequestMapping("/testRequestMapping") 20 public String testRequestMapping() { 21 System.out.println("testRequestMapping"); 22 return SUCCESS; 23 } 24 25 /** 26 * [email protected]的请求方式 27 @RequestMapping 的 value、method、params 及 heads 分别表示请求 URL、请求方法、请求参数及请求头的映射条 28 件,他们之间是与的关系,联合使用多个条件可让请求映射更加精确化。 29 * @return 30 */ 31 @RequestMapping(value="/testMethod",method=RequestMethod.POST) 32 public String testMethod() { 33 System.out.println("testMethod的post方式"); 34 return SUCCESS; 35 } 36 37 /** 38 * 3.了解: 可以使用 params 和 headers 来更加精确的映射请求. params 和 headers 支持简单的表达式. 39 * 40 * @return 41 */ 42 @RequestMapping(value = "testParamsAndHeaders", params = { "username", 43 "age!=10" }, headers = { "Accept-Language=zh-CN,zh;q=0.8" }) 44 public String testParamsAndHeaders() { 45 System.out.println("testParamsAndHeaders"); 46 return SUCCESS; 47 } 48 /** 49 * 4.Ant 风格资源地址支持 3 种匹配符: 50 * – ?:匹配文件名中的一个字符 51 * – *:匹配文件名中的任意字符 52 * – **:** 匹配多层路径 53 * @return 54 */ 55 @RequestMapping("/testAntPath/*/abc") 56 public String testAntPath() { 57 System.out.println("testAntPath"); 58 return SUCCESS; 59 } 60 }
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <body> 7 <!-- href="helloworld"和HelloWorld.java的@RequestMapping("/helloworld")对应 --> 8 <a href="helloworld">Hello World</a> 9 10 <br/> 11 <a href="requestMappingTest/testRequestMapping">@RequestMapping修饰类和方法</a> 12 13 <br/> 14 <form action="requestMappingTest/testMethod" method="POST"> 15 <input type="submit" value="测试@RequestMappin的post请求方式"> 16 </form> 17 18 <br/> 19 <a href="requestMappingTest/testParamsAndHeaders?username=lgs&age=11">testParamsAndHeaders</a> 20 21 <br/> 22 <a href="requestMappingTest/testAntPath/ggggggg/abc">testAntPath</a> 23 24 25 </body> 26 </html>
二、@PathVariable
@PathVariable 映射 URL 绑定的占位符
? 带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义
? 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable("xxx") 绑定到操作方法的入参中。
1 <a href="pathVariableTest/testPathVariable/10">testPathVariable</a>
1 package com.study.springmvc.handlers; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.PathVariable; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 7 @RequestMapping("/pathVariableTest") 8 @Controller 9 public class PathVariableTest { 10 11 public static final String SUCCESS="success"; 12 13 /** 14 * @PathVariable 可以来映射 URL 中的占位符到目标方法的参数中. 15 * @param id 16 * @return 17 */ 18 @RequestMapping("/testPathVariable/{id}") 19 public String testPathVariable(@PathVariable("id") Integer id) { 20 System.out.println("testPathVariable: " + id); 21 return SUCCESS; 22 } 23 }
以上是关于SpringMVC系列: 注解@RequestMapping@PathVariable的主要内容,如果未能解决你的问题,请参考以下文章
SpringMVC系列: 注解@RequestMapping@PathVariable
IDEA插件系列(64):Document Assistant插件——SpringMVC文档助手