ModelAndView类简介说明

下文笔者讲述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 }