本周接着介绍本次新闻项目中遇到的一些问题。
首先谈谈Controller层中的请求路径问题(@RequestMapping),@RequestMapping注解是Spring框架中用于处理HTTP请求映射的核心注解,它可以将HTTP请求映射到具体的控制器方法上。
1.关于它的基本作用:URL映射,将HTTP请求的路径映射到控制器的方法上。支持多种HTTP方法,默认支持所有HTTP方法(GET POST PUT DELETE等),也可以通过method属性指定特定方法。
2.属性作用
value/path 指定请求的 URL 路径,可以是一个或多个(如 "/users"、"/api/*")。
method 指定 HTTP 方法(如 RequestMethod.GET、RequestMethod.POST)。
params 指定请求参数的条件(如 params = "id=1")。
headers 指定请求头的条件(如 headers = "Content-Type=application/json")。
consumes 指定请求的 Content-Type(如 consumes = "application/json")。
produces 指定响应的 Content-Type(如 produces = "application/json")。
3.基本URL映射
java
@Controller
@RequestMapping("/users")
public class UserController {
// 处理 /users 请求(GET 方法)
@RequestMapping(method = RequestMethod.GET)
public String getUsers() {
return "users";
}
// 处理 /users/add 请求(POST 方法)
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addUser() {
return "redirect:/users";
}
}
4.注解位置
类级别:为控制器中的所有方法设置基础路径(如@RequestMapping("/api"))。
方法级别:在类级别的基础上,进一步指定具体路径(如 @GetMapping("/users"))。
5.与其他注解的混合使用
@RequestBody:用于处理JSON或XML格式的请求体。
@ResposeBody: 将方法返回值直接作为响应体(常用于RESTful接口)。
@PathVariable:绑定URL中的路径变量。
@RequestParam:绑定URL中的查询参数。
@RequestHeader:绑定请求头中的参数。
6.其他功能
1)路径匹配规则:支持Ant风格的路径(如*,**)。
2)HTTP方法限制:若不指定method,则默认支持所有请求方法。
3)参数验证:结合@Valid和BindingResult进行参数校验。
4)返回值处理:配合@ResponseBody和@RestController返回JSON数据。