spring mvc ModelAndView和ModelAttribute和Model和ModelMap的区别

Spring MVC 中,Model 是基础接口,用于将数据存储到 request 域,降低对 HttpServletRequest 的依赖。ModelMap 是 Model 的实现,提供 get 方法来获取数据。ModelAttribute 通常用作注解,标记在方法上时,该方法会在请求映射方法前执行,常用于填充不完整数据或初始化对象。ModelAndView 则用于组合视图和模型数据,提供更灵活的返回方式。
摘要由CSDN通过智能技术生成

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注解的方法,在执行控制器访问地址的方法
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值