title: Spring MVC: Passing a Model as an argument to a controller method VS instantiating it explicitly
body: <p>I have created two test methods in my <code>MVC Controller</code> class. In the first method the <code>Model</code> is being passed as an argument and in the second one I instantiate it directly. In both methods I add a single attribute to the <code>Model</code> instance:</p>
  
  <pre><code>@RequestMapping("/test-modelParam")
  public String testMethod1(Model model) {
      model.addAttribute("testname", "testvalue");
      return "/testview";
  }
  
  
  @RequestMapping("/test-modelInstantiatedExplicitly")
  public ModelAndView testMethod2() {
      ModelAndView mav = new ModelAndView("/testview");
      mav.addObject("testname", "testvalue");
      return mav;
  }
  </code></pre>
  
  <p>The View gets populated correctly in both cases.</p>
  
  <p>Is there any difference between the two approaches? If so, Where is it preferred to use one over the other?</p>