springMVC-ModeAndView


ModelAndView是SpringMVC视图机制


所有的web应用的mvc框架都有它定位视图的方式。Spring提供了视图解析器供你在浏览器中显示模型数据,而不必被拘束在特定的视图技术上。


Spring的控制器Controller会返回一个ModelAndView的实例。Spring根据ModelAndView实例中的View和Model把信息反馈给用户。


Spring中的视图是以名字为标识的,ViewResolver是通过名字来解析view的。


ModelAndView如其名称所示,它代表了Spring Web MVC中呈现画面时所使用的Model与View,由于Java一次只能返回一个物件,所以ModelAndView的作用封装这两个物件,以方便您一次返回Model与View这两个物件。


如果您要返回呈现画面时所需的Model资料,则可以使用Map来收集呈现View时所需的资料,然后在建构ModelAndView作为建构时的参数。


现在我们有了view名称,也有了显示时需要的model资料,那么我们如何显示view了。这就需要用到ViewResolver(视图解析器),它提供了从视图名称到实际视图的映射。

//返回的是一个包含模型和视图的ModelAndView对象;  
public ModelAndView objectList(){
  ModelAndView modelAndView = new ModelAndView("/user/index");
  // ModelAndView modelAndView = new ModelAndView();
  //往modelAndView中添加值
  mv.addObject("time",new Date());
  //mv.setViewName("/user/index");  
  return mv;
} 

/** 
* Model一个模型对象, 
* 主要包含spring封装好的model和modelMap,以及java.util.Map, 
* 当没有视图返回的时候视图名称将由requestToViewNameTranslator决定;  
* @return 
*/  
@RequestMapping(value="/index",method=RequestMethod.GET)  
public Map<String, String> index(){  
Map<String, String> map = new HashMap<String, String>();  
map.put("name", "张三");  
//map.put相当于request.setAttribute方法  
return map;  
}  

返回String  
//通过model进行使用  
@RequestMapping(value="/index",method = RequestMethod.GET)  
    public String index(Model model) {  
    String str = "user/index";  
    User user = new User();  
    user.setName("XXX");  
    model.addAttribute("user", user);  
    return str;  
}  

原文:http://blog.163.com/fly_sky_java/blog/static/140422234201471911823491/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值