一、ModelAndView介绍:
使用ModelAndView类用来存储处理完后的结果数据,以及显示该数据的视图。从名字上看ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用。业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架。框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上。
具体作用:
1、返回指定页面
ModelAndView构造方法可以指定返回的页面名称,
也可以通过setViewName()方法跳转到指定的页面 ,
2、返回所需数值
使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。
二、具体实例:
控制层:
@RequestMapping("/createPlanCase")
public Object createPlanCase(@RequestParam("id") int id,ModelAndView model) {
try {
FusePlanEntity fusePlanInfo=planInter.selectPlanById(id);
model=new ModelAndView("fuseplan/updateFusePlanTask");//实现页面跳转,下面两个属性在跳转同时被传过去
model.addObject("planName", fusePlanInfo.getPlanName());//计划名称
model.addObject("planDec", fusePlanInfo.getPlanDec());//计划描述
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("-----------"+JSONObject.toJSON(model));
return model;
}
前端渲染:直接将model中的属性添加到前端,格式如下
<div class="divContent">
<label class="control-label ">计划名称:</label>
<input id="planname" class="inputCss" type="text" name="planname" value="${planName}"></input>
</div>
<div class="divContent">
<label class="control-label">计划描述:</label>
<input id="plandescription" class="inputCss" type="text" name="plandescription" value="${planDec}"></input>
</div>
页面效果: