Model和ModelMap

在请求处理方法中可出现和返回的参数类型中,最重要的是Model和ModelAndView了。对于MVC框架,控制器(Controller)执行业务逻辑,用于产生模型数据(Model),而视图(View)则用于渲染模型数据。

如何将模型数据传递给视图是SpringMVC框架的一项重要工作,SpringMVC提供了多种途径输出模型数据,如:

Model和ModelMap
ModelAndView
@ModelAttribute
@SessionAttribute

SpringMVC在内部使用了一个org.springframework.ui.Model接口存储模型数据,他的功能类似java.util.Map接口,但是比Map易于使用。org.springframework.ui.ModelMap接口实现了Map接口。

SpringMVC在调用吹方法之前会创建一个隐含的模型对象,作为模型数据的存储容器。如果处理方法的参数为Model或ModelMap类型,则SpringMVC会将隐含模型的引用传递给这些参数。在处理方法内部,开发者可以通过这个参数对象访问模型中所有数据,也可以向模型中添加新的属性数据。

在处理方法中,Model和ModelMap对象都可以使用如下方法添加模型数据:

 

addArrtibute(String attributeName,Object Value)
@RequestMapping(value="/")
public String hello(Model model)
{
model.addAttribute("message","123456");
return "hello";
}

@RequestMapping(value="/hello_map")
public String helloMap(ModelMap model)
{
model.addAttribute("message","123456");
return "hello";
}

视图层显示均为: