@RequestMapping
是 Spring 框架中用于映射请求路径和方法的注解,它可以用在类级别和方法级别。在 Spring MVC 中,@RequestMapping
主要用于处理 HTTP 请求,将请求映射到相应的控制器方法。
以下是 @RequestMapping
的基本用法:
-
在类级别使用:
可以将
@RequestMapping
注解放在控制器类上,用于指定该控制器处理的基础请求路径。例如:@Controller @RequestMapping("/example") public class ExampleController { // 类中的方法处理以 "/example" 开头的请求路径 }
-
在方法级别使用:
将
@RequestMapping
注解放在控制器方法上,用于指定该方法处理的具体请求路径和请求方法。例如:@Controller @RequestMapping("/example") public class ExampleController { @RequestMapping("/hello") public String hello() { // 处理请求 "/example/hello" return "helloPage"; } }
-
指定请求方法:
可以通过
method
属性指定请求的 HTTP 方法,例如 GET、POST 等。默认情况下,@RequestMapping
支持所有的 HTTP 方法。@RequestMapping(value = "/submitForm", method = RequestMethod.POST) public String submitForm() { // 处理 POST 请求 return "formSubmittedPage"; }
-
接收路径参数:
@RequestMapping
支持在路径中接收参数,通过在路径中使用占位符{}
,并使用@PathVariable
注解接收参数。@RequestMapping("/user/{id}") public String getUserById(@PathVariable("id") Long userId) { // 处理带有路径参数的请求,例如 "/user/123" // userId 将被赋值为 123 return "userPage"; }
-
多个路径映射:
可以使用数组形式指定多个路径映射。
@RequestMapping(value = {"/path1", "/path2"}) public String multiplePaths() { // 处理多个路径映射 return "multiplePathsPage"; }
这只是 @RequestMapping
的基本用法,还有许多其他属性和选项,可以根据具体需要进行配置。在更高版本的 Spring 中,@RequestMapping
也可以被更具体的注解替代,比如 @GetMapping
、@PostMapping
、@PutMapping
等,它们分别用于处理 GET、POST、PUT 等特定的请求方法。