@RequestMapping

@RequestMapping

@RequestMapping@RequestMapping 是 Spring Framework 中用于映射 URL 到控制器方法的注解。它被用于将一个特定的 URL 请求映射到一个处理该请求的方法上。在 Spring 的 Web 应用程序中,@RequestMapping 注解通常用于控制器类的方法上,以确定哪个方法将处理特定的 HTTP 请求。

@RequestMapping注解对请求处理类中的请求处理方法进行标注;@RequestMapping注解拥有以下的六个配置属性:

value:映射的请求URL或者其别名method:兼容HTTP的方法名params:根据HTTP参数的存在、缺省或值对请求进行过滤header:根据HTTP Header的存在、缺省或值对请求进行过滤consume:设定在HTTP请求正文中允许使用的媒体类型product:在HTTP响应体中允许使用的媒体类型提示:在使用@RequestMapping之前,请求处理类还需要使用@Controller或@RestController进行标记

下面是使用@RequestMapping的两个示例:

@RequestMapping还可以对类进行标记,这样类中的处理方法在映射请求路径时,会自动将类上@RequestMapping设置的value拼接到方法中映射路径之前,如下:

基本使用:

代码语言:java复制@RequestMapping("/path")

public String handleRequest() {

// 处理请求的逻辑

return "viewName"; // 返回视图名称

}在这个例子中,当请求的 URL 匹配 “/path” 时,Spring 将调用 handleRequest 方法来处理该请求,并返回一个与视图相关的名称。

HTTP 方法映射:代码语言:java复制@RequestMapping(value = "/path", method = RequestMethod.GET)

public String handleGetRequest() {

// 处理 GET 请求的逻辑

return "viewName";

}可以通过 method 属性指定处理的 HTTP 方法。默认情况下,它匹配所有的 HTTP 方法。

多路径映射:代码语言:java复制@RequestMapping(value = {"/path1", "/path2"})

public String handleMultiplePaths() {

// 处理多个路径的逻辑

return "viewName";

}通过提供多个路径,可以将多个 URL 映射到同一个处理方法上。

请求参数匹配:代码语言:java复制@RequestMapping(value = "/path", params = "paramName=value")

public String handleParamRequest() {

// 处理带有特定参数的请求的逻辑

return "viewName";

}通过 params 属性,可以根据请求参数进行匹配,以决定是否调用特定的处理方法。

请求头匹配:代码语言:java复制@RequestMapping(value = "/path", headers = "headerName=value")

public String handleHeaderRequest() {

// 处理带有特定请求头的请求的逻辑

return "viewName";

}通过 headers 属性,可以根据请求头信息进行匹配。

消费类型和产出类型:代码语言:java复制@RequestMapping(value = "/path", consumes = "application/json", produces = "text/html")

public String handleMediaTypeRequest() {

// 处理特定媒体类型的请求的逻辑

return "viewName";

}通过 consumes 属性可以指定接受的请求的媒体类型,通过 produces 属性可以指定生成的响应的媒体类型。

路径变量:代码语言:java复制@RequestMapping("/path/{variable}")

public String handlePathVariable(@PathVariable String variable) {

// 使用路径变量的值进行处理

return "viewName";

}使用 {} 语法可以捕获 URL 中的路径变量,并将其传递给方法参数。

Ant 风格路径:代码语言:java复制@RequestMapping("/path/*/resource")

public String handleAntPath() {

// 处理 Ant 风格的路径匹配

return "viewName";

}使用通配符 * 和 ** 可以实现 Ant 风格的路径匹配。

@RequestMapping 可以根据实际需要的情况进行组合和使用,以实现更加灵活的 URL 映射。从 Spring 4.3 开始,还引入了更具体的注解如 @GetMapping、@PostMapping、@PutMapping、@DeleteMapping 等,分别用于更方便地定义 GET、POST、PUT、DELETE 请求的映射。

相关推荐