@RequestMapping注解
1、@RequestMapping注解的功能
从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。
SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。
2、@RequestMapping注解的位置
修饰类
和 方法
- 类定义处:提供初步
请求的映射信息
,相对于WEB应用的根目录
- 方法处:提供进一步
细分的映射信息
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面是一个同时在类和方法上应用了 @RequestMapping 注解的示例:
@RestController
@RequestMapping("/home")
public class IndexController { @RequestMapping("/") String get() { //mapped to hostname:port/home/ return "Hello from get"; } @RequestMapping("/index") String index() { //mapped to hostname:port/home/index/ return "Hello from index"; } }
如上述代码所示,到 /home 的请求会由 get() 方法来处理,而到 /home/index 的请求会由 index() 来处理。
@RequestMapping 来处理多个 URI
你可以将多个请求映射到一个方法上去,只需要添加一个带有请求路径值列表的 @RequestMapping 注解就行了。
@RestController
@RequestMapping("/home")
public class IndexController { @RequestMapping(value = { "", "/page", "page*", "view/*,**/msg" }) String indexMultipleMapping() { return "Hello from index multiple mapping."; } }
如你在这段代码中所看到的,@RequestMapping 支持统配符以及ANT风格的路径。前面这段代码中,如下的这些 URL 都会由 indexMultipleMapping() 来处理:
-
localhost:8080/home
-
localhost:8080/home/
-
localhost:8080/home/page
-
localhost:8080/home/pageabc
-
localhost:8080/home/view/
-
localhost:8080/home/view/view
-------------------------------------------------------------------------------------------------------------------------------------------------