@ModelAttribute
使用
用于方法参数
-
含义:
@ModelAttribute 注解可以应用在控制器方法的参数上,用于将请求参数绑定到方法的参数。 -
用法:将请求参数绑定到方法参数上,并自动将其添加到模型中。
-
示例:
@RequestMapping("/example") public String exampleMethod(@ModelAttribute("name") String name) { // 在这里可以使用 name 参数进行业务逻辑处理 return "exampleView"; }
注意:
- 如果传递的是简单的请求参数,那么 value 属性必须与传递的参数的名称保持一致。
- 如果传递的是 POJO 类型,那么 value 可以随便写,但是要注意这个 value 会被当作放在作用域的 key。
- @ModelAttribute 的 value 不能与 @SessionAttributes 的名称一致,如果一致,会产生异常。
- 如果需要将请求的参数存入 Session 作用域,可以使用 Model、ModelMap 手动赋值。
用于方法返回值
-
含义:
@ModelAttribute 注解可以应用在控制器方法的返回值上,用于将返回值添加到模型中。 -
用法:将方法返回的对象添加到模型中,使其在视图中可以访问。
-
示例:
@ModelAttribute("user") @RequestMapping("/example") public User exampleMethod() { User user = new User(); user.setName("John"); user.setAge(25); return user; }
用于方法上
-
含义:
@ModelAttribute 注解可以应用在控制器方法上,用于在每次请求处理之前预先填充表单数据或执行其他预处理操作。 -
用法:用于在请求处理之前执行一些操作,如设置某些默认值、加载数据等。
-
示例:
@ModelAttribute public void setupDefaultValues(Model model) { model.addAttribute("defaultName", "Default User"); } @RequestMapping("/example") public String exampleMethod() { // 可以在这里使用预设的默认值进行业务逻辑处理 return "exampleView"; }
】