Spring MVC——数据显示到前端

??????

哈喽!大家好,我是【一心同学】,一位上进心十足的【Java领域博主】!???

✨【一心同学】的写作风格:喜欢用【通俗易懂】的文笔去讲解每一个知识点,而不喜欢用【高大上】的官方陈述。

✨【一心同学】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。

✨如果有对【后端技术】感兴趣的【小可爱】,欢迎关注一心同学】???

❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️ 


目录

第一种:ModelAndView

第二种:ModelMap

第三种:Model

区别

结语


第一种:ModelAndView

ModelAndView对象有两个作用: 

(1)设置转向地址:setViewName(地址)

(2)将控制器方法中处理的结果数据传递到结果页面,也就是把在结果页面上需要的数据放到ModelAndView对象中即可,其作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。

注意:需要用户自行创建。

public class BlogController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //ModelAndView 模型和视图
        ModelAndView mv = new ModelAndView();
        //封装对象,放在ModelAndView中。
        mv.addObject("msg","yixin!");
        //封装要跳转的视图,放在ModelAndView中
        mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
        return mv;
    }
}

第二种:ModelMap

作用ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用:用来在一个请求过程中传递处理的数据。

注意:不需要用户自行创建,可通过参数自行传递进来。

@RequestMapping("/test")
public String test(@RequestParam("name") String username, ModelMap modelMap){
        //封装要显示到视图中的数据
        //相当于req.setAttribute("name",name);
        modelMap.addAttribute("name",username);
        System.out.println(username);
        return "hello";
        }



第三种:Model

介绍:Model 是一个接口,其实现类为ExtendedModelMap,继承了ModelMap类。

注意:不需要用户自行创建,可通过参数自行传递进来。

@RequestMapping("/test")
public String test(@RequestParam("name") String username, Model model){
        //封装要显示到视图中的数据
        //相当于req.setAttribute("name",name);
        model.addAttribute("name",username);
        System.out.println(username);
        return "hello";
        }



区别

(1)ModelAndView的实例是由用户手动创建的,而ModelMap和Model是SpringMVC自动创建并作为控制器方法参数传入。

(2)ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。

(3)  ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;




结语



上面就是【一心同学】讲解SpringMVC的数据显示到前端的常见三种方式,都有各自的特点,使用时可根据需要自行选择。


版权声明:本文为Huang_ZX_259原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。