在请求处理方法中可出现和返回的参数类型中,最重要的是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"; }
视图层显示均为: