Model,ModelMap和ModelAndView之间有什么区别?
以下Spring框架类的主要区别是什么?
Model
-
ModelMap
-
ModelAndView
使用Model.put(String,Object)
我们可以访问.jsp
文件中的值,但是ModelMap.addAttribute(String,Object)
也做同样的事情。 我不明白这些类之间的区别。
Model
是一个接口,而ModelMap
是一个类。
ModelAndView
只是一个ModelMap
和一个视图对象的容器。 它允许一个控制器作为一个单一的值返回。
Model,ModelMap和ModelAndView之间的区别
模型:它是一个接口。 它为模型属性定义了一个持有者,主要是为了向模型添加属性而devise的。
例:
@RequestMapping(method = RequestMethod.GET) public String printHello(Model model) { model.addAttribute("message", "Hello World!!"); return "hello"; }
ModelMap:在构build用于UI工具的模型数据时使用的Map的实现。支持链式调用和模型属性名称的生成。
例:
@RequestMapping("/helloworld") public String hello(ModelMap map) { String helloWorldMessage = "Hello world!"; String welcomeMessage = "Welcome!"; map.addAttribute("helloMessage", helloWorldMessage); map.addAttribute("welcomeMessage", welcomeMessage); return "hello"; }
ModelAndView:这个类仅仅是为了让控制器可以返回一个返回值中的模型和视图。
例:
@RequestMapping("/welcome") public ModelAndView helloWorld() { String message = "Hello World!"; return new ModelAndView("welcome", "message", message); }
Model :是一个包含四个addAttribute和一个merAttribute方法的接口。
ModelMap :实现Map接口。 它也包含Map方法。
ModelAndView :正如Bart解释的那样,它允许一个控制器作为一个单一的值返回。
- Javadependency injection:XML或注释
- 绕过Hibernate中的GeneratedValue(合并数据不在数据库?)
- 如何创build用于Spring安全expression式语言注释的自定义方法
- 为什么在Java EE中使用CDI?
- HttpSecurity,WebSecurity和AuthenticationManagerBuilder
- 如何在弹簧容器之外使用Spring Data JPA?
- 自动assembly实现相同接口的两个bean – 如何将默认的bean设置为autowire?
- 如何closures一个Spring ApplicationContext?
- 通过JSON中的RestTemplate发送POST请求