@ModelAttribute
是Spring Boot中的一个注解,用于将请求参数绑定到方法的参数或方法的返回值上。被标记为@ModelAttribute
的方法会在每个请求处理之前被调用,用于准备数据模型。
作用
@ModelAttribute
的作用是将请求参数绑定到方法的参数或方法的返回值上。被标记为@ModelAttribute
的方法会在每个请求处理之前被调用,用于准备数据模型。
使用方法
使用@ModelAttribute
注解时,可以将其放置在方法的参数或方法的返回值上。被标记为@ModelAttribute
的方法会在每个请求处理之前被调用,用于准备数据模型。
下面是@ModelAttribute
的使用方法:
@Controller
public class MyController {
@ModelAttribute("myModel")
public MyModel prepareMyModel() {
MyModel myModel = new MyModel();
// ...
return myModel;
}
@GetMapping("/myPage")
public String myPage(@ModelAttribute("myModel") MyModel myModel) {
// ...
return "myPage";
}
}
在上面的示例中,prepareMyModel
方法被标记为@ModelAttribute
,用于准备数据模型。myPage
方法的参数myModel
也被标记@ModelAttribute
,用于将请求参数绑定到MyModel
对象上。
示例说明
以下是两个示例,说明如何使用@ModelAttribute
注解:
示例1:使用@ModelAttribute准备数据模型
问题描述:需要在请求处理之前准备数据模型。
解决方案:使用@ModelAttribute
注解标记准备数据模型的方法。
示例代码如下:
@Controller
public class MyController {
@ModelAttribute("myModel")
public MyModel prepareMyModel() {
MyModel myModel = new MyModel();
// ...
return myModel;
}
@GetMapping("/myPage")
public String myPage(@ModelAttribute("myModel") MyModel myModel) {
// ...
return "myPage";
}
}
在上面的示例中,prepareMyModel
方法被标记为@ModelAttribute
,用于准备数据模型。myPage
方法的参数myModel
也被标记为@ModelAttribute
,用于将请求参数绑定到MyModel
对象上。
示例2:使用@ModelAttribute绑定请求参数
问题描述:需要将请求参数绑定到方法的参数上。
解决案:使用@ModelAttribute
注解标记方法的参数。
示例代码如下:
@Controller
public class MyController {
@GetMapping("/myPage")
public String myPage(@ModelAttribute("myModel") MyModel myModel) {
// ...
return "myPage";
}
}
在上面的示例中,myPage
方法的参数myModel
被标记为@ModelAttribute
,用于将请求参数绑定到MyModel
对象上。