3.2.4 Model和ModelMap
在请求处理方法中可出现和返回的参数类型中,最重要的就是Model和ModelAndView了。对于MVC框架,控制器(Controller)执行业务逻辑,用于产生模型数据(Model),而视图(view)则用于渲染模型数据。
如何将模型数据传递给视图是Spring MVC框架的一项重要工作, Spring MVC提供了多种途径输出模型数据,如:
Model和ModelMapModelAndView@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