Model
- Model是一个接口,包含addAttribute(),其实现类是ExtendedModelMap,它集成了ModelMap,而ModelMap实现了Map接口。
public class ExtendedModelMap extends ModelMap implements Model
- Model只能传输数据,不能业务寻址,也就是不能跳转页面。
@RequestMapping("/helloWorld")
public String helloWorld(Model model){
model.addAttribute("message","SpringMvc大爷你好!");
return "helloWorld";
}
Model每一次请求都可以被自动创建, 但是ModelAndView需要我们自己new。
ModelMap和Model其实差不多,也是只能传输数据,把数据放到request中,而且也是被SpringMVC自动创建的。
public ModelMap addAttribute(String attributeName, Object attributeValue){...}
public ModelMap addAttribute(Object attributeValue){...}
public ModelMap addAllAttributes(Collection<?> attributeValues) {...}
public ModelMap addAllAttributes(Map<String, ?> attributes){...}
- 示例:
public String xxxxmethod(String someparam,ModelMap model)
{
//将数据放置到ModelMap对象model中,第二个参数可以是任何java类型
model.addAttribute("key",someparam);
//返回跳转地址
return "path:handleok";
}
ModelAndView
- ModelAndView既能传输数据,又能进行业务寻址,找到页面跳转过去。
- 添加模型数据用addObject(),设置视图用setViewName()或调用构造器。