@RequestParam与@RequestAttribute区别
时间: 2023-10-17 12:32:20 浏览: 100
@RequestParam和@RequestAttribute是Spring MVC中用于接收请求参数的注解,它们的作用略有不同。
@RequestParam注解用于绑定请求参数到方法的参数上。它可以用在方法的参数列表中,用于指定请求参数的名称和是否必需等属性。当请求参数与方法的参数名不一致时,可以使用@RequestParam注解来进行映射。例如:
```java
@GetMapping("/user")
public String getUser(@RequestParam("id") int userId) {
// 处理业务逻辑
return "user";
}
```
在上面的例子中,通过@RequestParam注解将请求参数"id"绑定到方法参数"userId"上。
@RequestAttribute注解用于从请求属性中获取值。它可以用在方法的参数列表中,用于指定请求属性的名称。与@RequestParam注解不同,@RequestAttribute注解用于获取在请求过程中保存在request中的属性值。例如:
```java
@GetMapping("/user")
public String getUser(@RequestAttribute("userInfo") User user) {
// 处理业务逻辑
return "user";
}
```
在上面的例子中,通过@RequestAttribute注解将名为"userInfo"的请求属性绑定到方法参数"user"上。
总结来说,@RequestParam注解用于获取请求参数,而@RequestAttribute注解用于获取请求属性。两者的区别在于数据来源不同,一个是请求参数,一个是请求属性。
阅读全文