ModelAndView 分为两部分:model和view。model负责参数,view就是视图,也就是页面。相当于统一了Model对象和View对象的功能。
先说说它的工作过程,为保证逻辑清晰,spring mvc搭建的后台一般分为分发功能的Controller层,逻辑判断的Service层,数据库交互的Dao层(也就是按照功能分类的接口和类)。ModelAndView 一般在Controller层作为结果类型返回,其内部的view部分指定返回的页面,model指定返回的参数,以下是示例代码。
[java] view plain copy
@RequestMapping(method=RequestMethod.GET ,value = “/getShareInfo”) //指定访问此接口方式和地址
public ModelAndView getShareInfo(Integer liveBroadcastId,String language,Integer userId) {
ModelAndView mav = new ModelAndView(“share”); //指定页面名称为share
ResultTemplateModel liveModel = liveBroadcastService.getLiveById(liveBroadcastId, language, userId);//执行功能
LiveDetailInfoModel liveInfo = (LiveDetailInfoModel) liveModel.getData(); //执行功能,得到结果对象
mav.addObject(“replayName”, liveInfo.getReplayName()); //从结果对象中取出参数放入 ModelAndView 中
mav.addObject(“startPlayTime()”, liveInfo.getStartPlayTime());
mav.addObject(“address”, liveInfo.getAddress());
mav.addObject(“attentionState”, liveInfo.getAttentionState());
return mav; //返回ModelAndView
}
然后是它在spring.xml中的配置
[html] view plain copy
可以看到我指定的视图名称为share,在返回之前,