Model
最大的一个类,其他的都是它的实现类。spring mvc中Model的作用是把从前面传的值通过Model把值存到request域里,使用Model替代了原始的HttpServletRequest获取数据,因为使用Request代码 要引入jar包Api 耦合度过高 如果没有相关的jar包 就会报错,解决的办法就是Model 它会自动的把值存到Request域里。
@RequestMapping("TestSessionAttributes")
public String TestSessionAttributes1(Model model) {
//Model会自动的把对象存到Request域中
//这个对象(美美)会存在Module对象中 Model的底层会帮你存储在Request域中
model.addAttribute("hao", "美美");
return "abc";
}
ModelMap把值取出 因为Model没有get的方法所有通过它的实现类,来实现方法。
@RequestMapping("getSessionAttributes")
public String getSessionAttributes1(ModelMap modelMap) {
//用的全是 Model 的实现 类
String lihao = (String) modelMap.get("hao");//通过键把值取出来
System.out.println(hao);
return "abc";
}
ModelAttribute:先执行 方法上有ModelAttribute的先执行
ModelAttribute: 如果是出现在方法上 该方法会在 映射器(RequestMapping)方法执行前先执行
作用:
(出现在方法上) 出现在方法上,表示当前方法会在控制器的方法执行之前先执行。它可以修饰没有返回值
的方法,也可以修饰有具体返回值的方法。
(出现在参数上) 出现在参数上,获取指定的数据给参数赋值 在把赋的值取出来
属性:
value:用于获取数据的key值。 也可以是map结构的key值。
应用场景:
当表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数据。
意思就是from里提交的数据不全(向后台封装对象 少一个参数什么的(date:时间)通过他 获取 使用 原来数据库所存的对象)
有返回值:
//这里先执行有ModelAttribute注解的方法,在执行控制器访问地址的方法