springmvc学习笔记(20)——Map和Model 以及ModelAndView

处理模型数据之Map,Model
在上一次的笔记中讲到了使用ModelAndView作为返回值,可以轻松的返回数据并且指定转发的页面。 
其实我们也可以使用Map作为参数,将数据传递给页面。直接上代码:

import org.springframework.ui.Model;
/
**
* 可以添加map类型的参数(或者Model类型,ModelMap类型)
* @param map
* @return
*/
@RequestMapping("/testMap")
public String testMap(Map<String, Object> map){
    map.put("names",   Arrays.asList("peter","tom","jack"));
    return "hello";
}
@RequestMapping("/testModel")
public String testMap(Model model){
    model.addAttribute("names",Arrays.asList("peter","tom","jack"));     
    return "hello";
}


代码解析: 
将Map或者Model作为参数传给目标方法,然后把数据存入其中,然后就可以轻松的传给页面。 
底层实现原理:springmvc会将他们转化为ModelAndView,viewName为hello,Model就是这的Map或者Model

前端获取值:

names:${names }


无论是传入Map还是Model作为参数,前端获取值得方法都是一样的。 
ModelAndView也是如此。 
关于ModelAndView
 

ModelAndView

ModelAndView 从字面上来看,就是模型和视图。我们在Controller中,可以返回一个页面,比如return "hello" 就是返回一个hello.jsp页面。其实我们也可以返回ModelAndView这个对象.

ModelAndView 这个对象中可以保存你要转发的页面以及你要返回的数据。 
假设现在有一个用户想要你打开一个叫hello.jsp的页面,该页面上显示当前时间,那么我们可以这样做:

@RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView(){
        String viewName = "hello";
        ModelAndView mv = new ModelAndView(viewName);
        mv.addObject("time", new Date());
        return mv;
    }


代码解析: 
viewName就是你要返回的界面,就相当于return "hello" 
addObject()就是把你要返回的数据加入到这个对象中。 
然后return ModelAndView,springmvc就帮你跳转到hello这个界面,返回时间数据
在界面上使用${time}进行对内容的接收。

猜你喜欢

转载自blog.csdn.net/qq_36826506/article/details/85019159