springmvc-Model和ModelAndView的区别

HarmonyOS

  前言

   用过springMvc的小伙伴都知道,一般而言我们返回页面视图的时候会有两种可能,就是本文题目中的两个类。其实本文就是想要对比一下这两个类在spring的视图解析中的作用以及区别。

  区别

   就我个人而言,我自己觉得这两者之间是没有什么区别的?实际上,这两者之间有着很大的区别,具体就表现在Model只是用来传输数据的,并不会进行业务的寻址。但是,ModelAndView却是可以进行业务寻址的,就是设置对应的要请求的静态文件,这里的静态文件指的是类似jsp的文件。当然,两者还有一个最大的区别,那就是Model是每一次请求都必须会带着的,但是ModelAndView是需要我们自己去新建的。

  代码示例

   首先是Model传递数据。

  @Controller

  public class FreemarkerController {

   @SuppressWarnings("unchecked")

   @RequestMapping(method = RequestMethod.POST, value = "/freemarker")

   public String getFtl(Model model) {

   // 构造填充数据的Map

   Map map = new HashMap();

   List<TestVo> testVos = new ArrayList<>();

   TestVo testVo = new TestVo();

   testVo.setName("fulei");

   TestVo testVo1 = new TestVo();

   testVo1.setName("wangmeng");

   testVos.add(testVo);

   testVos.add(testVo1);

   map.put("user", "love");

   map.put("url", "http://www.baidu.com/");

   map.put("name", "百度");

   map.put("testVos", testVos);

   model.addAllAttributes(map);

   return "test";

   }

  }

  -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

   其次就是ModelAndView。

   @RequestMapping(method = RequestMethod.POST, value = "/freemarker")

   public ModelAndView getFtlByModelAndView() {

   ModelAndView modelAndView = new ModelAndView();

   // 构造填充数据的Map

   Map map = new HashMap();

   List<TestVo> testVos = new ArrayList<>();

   TestVo testVo = new TestVo();

   testVo.setName("fulei");

   TestVo testVo1 = new TestVo();

   testVo1.setName("wangmeng");

   testVos.add(testVo);

   testVos.add(testVo1);

   map.put("user", "love");

   map.put("url", "http://www.baidu.com/");

   map.put("name", "百度");

   map.put("testVos", testVos);

   modelAndView.setViewName("xx/xx")

   modelAndView.addAllObjects(map);

   return modelAndView;

   }

   从上面我们可以看得出来这两个之间还是有一定的区别的,当然具体的区别也就如我上面所描述的那样了。

  总结

   这篇博文主要是讨论下这个看似不会有坑的地方的一些小问题,算是对今天做的东西的一个总结吧。有时间的话,再详细得谈谈在这边遇到的问题。

  文章来自https://blog.csdn.net/wangmeng951011/article/details/53121483

标签: HarmonyOS