SpringMVC 注解(七) @ModelAttribute注解,设置model视图属性

SpringMVC @ModelAttribute

  • 注意的地方

    当类中定义了@ModelAttribute 注解的方法(定义在方法上),此时所以的@RequestMapping 定义的方法在执行前都会执行被@ModelAttribute定义的方法,如果此类对应多个视图,要谨慎使用,防止值混乱

  • 作用:

    1.在有@RequestMapping 注解的类中,可以注解方法的参数设置Model属性暴露给web视图

    2.也可以注解方法的返回值设置Model属性,暴露给web视图

  • 例子

1.设置注解返回值的:将值注入model 属性中

// 第一种情况
@ModelAttribute
public void testModel(Model model,@RequestParam String type) {
    model.addAttribute("type",type);
}

第一种情况的变形

//第一种情况的变形,
//此时key 值为所放入的参数类型的名称全小写形式
@ModelAttribute
public void testModel2(Model model,@RequestParam String type) {
    model.addAttribute(type);
}

//或

//同上属变形一样,key也是参数类型的小写形式
@ModelAttribute
public String testModel3(Model model,@RequestParam String type) {
    return type;
}

//变形的key 实在很不方便,而且多个相同类型值如果设置进入
// Model会重复,可以在方法上的@ModelAttribute注解中添加
// value属性指定key值

2.设置在方法参数声明上,从model 中取对应 的key值

@RequestMapping("test2")
public String test2(@ModelAttribute("type") String type) {
    return "../index";
}

参考: https://blog.csdn.net/lovesomnus/article/details/78873089

猜你喜欢

转载自blog.csdn.net/kzcming/article/details/84939687