SpringMVC之Model设计。

本文介绍了SpringMVC框架中ModelAndView的作用及其工作原理。ModelAndView作为业务逻辑层与视图层之间的桥梁,持有ModelMap和View对象,用于渲染模板。ModelMap存储了模板渲染所需的变量实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果Handler对象返回了ModelAndView对象,那么说明Handler需要传一个Model实例给View去渲染模板。除了渲染页面需要Model实例外,在业务逻辑层通常也有Model实例,但是这不是本文的重点,本文介绍的Model实例是针对模板渲染来说的。

ModelAndView对象是连接业务逻辑层与View展现层的桥梁,对SpringMVC来说他也是连接Handler与View的桥梁。ModelAndView对象顾名思义会持有一个ModelMap对象和一个View对象或者View的名称。ModelMap对象就是执行模板徐然时所需要的变量对应的实例,如JSP通过request.getAttribute(String)获取的JSTL标签名对应的对象,以及在Velocity中context.get(String)获取的$foo对应的变量实例。

ModelMap其实也是个Map,在Handler中将模板中需要的对象存在这个Map中,然后传递到View对应的ViewResolvers中,不同的ViewResolvers会对这个Map中的对象有不同的处理方式,如Velocity中将这个Map保存到org.apache.velocity.VelocityContext中,而对于freemarker模板引擎来说则将ModelMap包装成freemarker.template.TemplateHashModel。对于JSP来说,将每个ModelMap中的元素分别设置到request.setAttribute(modelName, modelValue)中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值