Model,ModelMap,ModelAndView用法介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LittleMangoYX/article/details/82022743

1,Model
    Model只是用来传输数据的,并不会进行业务的寻址。Model是一个接口,其实现类为ExtendedModelMap,继承了ModelMap类。一般来说,可以用model来接收各种类型的数据,如果使用来接收一组数据List那么这个时候的model实际上是ModelMap。Model通过addAttribute方法向页面传递参数。
    Model的实例是spirng mvc框架来自动创建并作为控制器方法参数传入,用户无需自己创建,需要return 返回指定的页面路径。
    @RequestMapping("testModel")
    public String testModel(Model model) {

                // 接收查询的信息
                List<Category> cs1= categoryService.list();
                // 封装了查询的数据
                model.addAttribute("test", cs1);
                //重要!!需要给出返回model跳转的路径
                return "testModel";
        }
    
2,ModelMap
    ModelMap本身不能设置页面跳转的url地址别名或者物理跳转地址,那么我们可以通过控制器方法的字符串返回值来设置跳转url地址别名或者物理跳转地址。request对象的setAttribute方法的作用(用来在一个请求过程中传递处理的数据),用法等同于Model。(通过addAttribute方法向页面传递参数)
    ModelMap的实例是spirng mvc框架来自动创建并作为控制器方法参数传入,用户无需自己创建,需要return 返回指定的页面路径。
    @RequestMapping("testModelMap")
    public String testModelMap(ModelMap model) {

                // 接收查询的信息
                List<Category> cs2= categoryService.list();
                // 封装了查询的数据
                model.addAttribute("test", cs2);
                //重要!!需要给出返回model跳转的路径
                return "testModelMap";
        }
3,ModelAndView
    添加模型数据用addObject,设置视图setViewName。ModelAndView的实例是需要我们手动new的,ModelAndView 可以自己寻址,只需要return 返回其对象即可。
    @RequestMapping("testModelAndView")
    public ModelAndView testModelAndView(){
           //创建一个模型视图对象
            ModelAndView mav = new ModelAndView();
            //获取到查询的数据
            List<Category> cs= categoryService.list();

            // //将数据放置到ModelAndView对象view中,第二个参数可以是任何java类型
            mav.addObject("cs", cs);
            // 放入jsp路径
            mav.setViewName("testModelAndView");
             //返回ModelAndView对象mav
            return mav;
        }

猜你喜欢

转载自blog.csdn.net/LittleMangoYX/article/details/82022743
今日推荐