??????
哈喽!大家好,我是【一心同学】,一位上进心十足的【Java领域博主】!???
✨【一心同学】的写作风格:喜欢用【通俗易懂】的文笔去讲解每一个知识点,而不喜欢用【高大上】的官方陈述。
✨【一心同学】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。
✨如果有对【后端技术】感兴趣的【小可爱】,欢迎关注【一心同学】???
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
目录
第一种: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的数据显示到前端的常见三种方式,都有各自的特点,使用时可根据需要自行选择。