转自:
下文笔者讲述ModelAndView类的简介说明,如下所示:
ModelAndView简介
ModelAndView对象包含
一个model属性和一个view属性 &Nbsp;model是一个ModelMap类型,它是一个LinkedHashMap的子类
view包含了一些视图信息
构造方法
ModelAndView() //默认构造函数豆式的用法:填充bean的属性,而不是将在构造函数中的参数 |
ModelAndView(String viewName) //方便的构造时,有没有模型数据暴露 |
ModelAndView(String viewName, Map model) //给出创建一个视图名称和模型新的ModelAndView |
ModelAndView(String viewName, String modelName, Object modelObject) //方便的构造采取单一的模式对象 |
ModelAndView(View view) //构造方便在没有模型数据暴露 |
ModelAndView(View view, Map model) //创建给定一个视图对象和模型,新的ModelAndView |
ModelAndView(View view, String modelName, Object modelObject) //方便的构造采取单一的模式对象 |
类方法
ModelAndView addAllObjects(Map modelMap) //添加包含在所提供的地图模型中的所有条目 |
ModelAndView addObject(Object modelObject) //添加对象使用的参数名称生成模型 |
ModelAndView addObject(String modelName,ObjectmodelObject) //对象添加到模型中 |
void clear() //清除此ModelAndView对象的状态 |
Map getModel() //返回的模型图 |
protectedMap getModelInternal() //返回的模型图 |
ModelMap getModelMap() //返回底层ModelMap实例(从不为null) |
View getView() //返回View对象,或者为null,如果我们使用的视图名称由通过一个ViewResolverDispatcherServlet会得到解决 |
String getViewName() //返回视图名称由DispatcherServlet的解决,通过一个ViewResolver,或空,如果我们使用的视图对象 |
boolean hasView() //指示此与否的ModelAndView有一个观点,无论是作为一个视图名称或作为直接查看实例 |
boolean isEmpty() //返回此ModelAndView对象是否为空,即是否不持有任何意见,不包含模型 |
boolean isReference() //返回,我们是否使用视图的参考,i.e. |
void setView(Viewview) //设置此ModelAndView的视图对象 |
void setViewName(StringviewName) //此ModelAndView的设置视图名称,由通过一个ViewResolverDispatcherServlet会得到解决 |
String toString() //返回这个模型和视图的诊断信息 |
boolean wasCleared()?? //返回此ModelAndView对象是否为空的调用的结果,以清除(),即是否不持有任何意见,不包含模型 |
配置
在application.xml中配置支持ModelAndView,配置方式有两种 //配置一 <bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> <!-- 视图文件的前缀 --> <property name="suffix" value=".jsp"></property> <!-- 视图文件的后缀名 --> <!-- view是用什么显示,这里是jsp,还可以用velocity之类的 --> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> </bean> //配置二 <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"></bean> 例子(向ModelAndView中添加数据) @RequestMapping("/test") public ModelAndView test(){ ModelAndView mav=new ModelAndView("hello"); mav.addObject("time", new Date()); mav.getModel().put("name", "caoyc"); return mav; }
JSP页面
time:${requestScope.time} <br/> name:${name }