Request Mapping 基础用法

在 Spring MVC 应用程序中,RequestDispatcher (在 Front Controller 之下) 这个 servlet 负责将进入的 HTTP 请求路由到控制器的处理方法。

在对 Spring MVC 进行的配置的时候, 你需要指定请求与处理方法之间的映射关系。

超详细 Spring @RequestMapping 注解使用技巧


要配置 Web 请求的映射,就需要你用上 @RequestMapping 注解。

@RequestMapping 注解可以在控制器类的级别和/或其中的方法的级别上使用。

在类的级别上的注解会将一个特定请求或者请求模式映射到一个控制器之上。之后你还可以另外添加方法级别的注解来进一步指定到处理方法的映射关系。

下面是一个同时在类和方法上应用了 @RequestMapping 注解的示例:

代码

  1. @RestController  
  2. @RequestMapping("/home")  
  3. public class IndexController {  
  4.     @RequestMapping("/")  
  5.     String get() {  
  6.         //mapped to hostname:port/home/  
  7.         return "Hello from get";  
  8.     }  
  9.     @RequestMapping("/index")  
  10.     String index() {  
  11.         //mapped to hostname:port/home/index/  
  12.         return "Hello from index";  
  13.     }  
  14. }  


如上述代码所示,到 /home 的请求会由 get() 方法来处理,而到 /home/index 的请求会由 index() 来处理。

@RequestMapping 来处理多个 URI

你可以将多个请求映射到一个方法上去,只需要添加一个带有请求路径值列表的 @RequestMapping 注解就行了。

代码

  1. @RestController  
  2. @RequestMapping("/home")  
  3. public class IndexController {  
  4.   
  5.     @RequestMapping(value = {  
  6.         "",  
  7.         "/page",  
  8.         "page*",  
  9.         "view/*,**/msg"  
  10.     })  
  11.     String indexMultipleMapping() {  
  12.         return "Hello from index multiple mapping.";  
  13.     }  
  14. }  


如你在这段代码中所看到的,@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

相关文章:

  • 2022-12-23
  • 2021-08-07
  • 2021-09-28
  • 2021-07-02
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-11
  • 2022-12-23
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
相关资源
相似解决方案