在controller中,用@ModelAttribute注解一个非请求方法,该方法会在每次调用该方法的每一个方法前被调用被调用
时间: 2024-10-08 21:01:52 浏览: 23
spring mvc中的@ModelAttribute注解示例介绍
在Spring MVC框架中,`@ModelAttribute`注解通常用于标记控制器中的静态方法或初始化方法,它的目的是将方法的结果绑定到模型(Model)中,以便在整个请求处理周期内共享数据。当你在控制器的方法上添加这个注解,并且它不是HTTP请求方法(如`@GetMapping`, `@PostMapping`等),那么这个方法会在每次请求进入该控制器之前自动执行。
这意味着无论哪个处理器方法需要使用你在`@ModelAttribute`方法中设置的数据,那些数据都会预先准备就绪。例如,你可以在这个方法中填充一些默认值、校验输入数据或者从数据库获取初始状态。这样的设计可以简化业务逻辑,避免在每个处理器方法中重复设置相同的变量。
```java
@GetMapping("/example")
public String handleRequest(@ModelAttribute("sharedData") ExampleObject data) {
// 数据已经在data对象中准备好了
// ...
}
@PostMapping("/save")
public String saveData(ExampleObject data) {
// 这里可以直接使用sharedData,无需再次初始化
// ...
}
```
阅读全文