3.2.4 Model和ModelMap
在请求处理方法中可出现和返回的参数类型中,最重要的就是Model
和ModelAndView
了。对于MVC
框架,控制器(Controller
)执行业务逻辑,用于产生模型数据(Model
),而视图(view
)则用于渲染模型数据。
如何将模型数据传递给视图是Spring MVC
框架的一项重要工作, Spring MVC
提供了多种途径输出模型数据,如:
Model
和ModelMap
ModelAndView
@ModelAttribute
@SessionAttributes
下面将重点介绍Model
、 ModelMap
以及ModelAndView
,@SessionAttributes
将在3.11节中重点介绍;@ModeLAttribute
将在3.12节中重点介绍.
Spring MVC
在内部使用了一个org.springframework.ui.Model
接口存储模型数据,它的功能类似java.util.Map
接口,但是比Map
易于使用。org.springframework.ui.ModelMap
接口实现了Map
接口。Spring MVC
在调用处理方法之前会创建一个隐含的模型对象
,作为模型数据的存储容器。如果处理方法的参数为Model
或ModelMap
类型,则Spring MVC
会将隐含模型的引用传递给这些参数。在处理方法内部,开发者可以通过这个参数对象访问模型中的所有数据也可以向模型中添加新的属性数据。
在处理方法中, Model
和ModelMap
对象都可以使用如下方法添加模型数据addAttribute(String attributeName,Object attributeValue)
示例 Model和ModelMap的使用
1 | package org.fkit.controller; |
在modelTest
方法中创建了一个自定义的User
对象,并且给username
属性赋值。使用Model
对象的addAttribute("user",user)
方法将User
对象添加到Model
当中,即JSP
的request Scope
当中
modelMapTest
方法的代码功能与此类似,只是存储对象由Model
改成了ModelMap
原文链接: 3.2.4 Model和ModelMap