Spring之模型

Posted 剑姬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring之模型相关的知识,希望对你有一定的参考价值。

一、Spring模型种类

Spring有以下几种模型:

1、ModelAndView:作为方法返回值类型,就如其名字一样,既能添加模型数据,又能设置视图;

2、Model:Model作为接口,一般情况下,控制器的方法返回值为String类型,(Model model)作为入参存在于方法中;既可以显式声明key,addAttribute(key,Object)

3、ModelMap:ModelMap作为接口,一般情况下,控制器的方法返回值为String类型(Map map)作为入参存在于方法中;

4、@SessionAttributes:将模型中的某个属性暂存到 HttpSession 中,以便多个请求之间可以共享这个属性;

5、@ModelAttribute:方法入参标注该注解后, 入参的对象就会放到数据模型中。

二、Spring模型具体介绍

ModelAndView:控制器处理方法的返回值如果为 ModelAndView, 则其既包含视图信息,也包含模型数据信息。

 1 @Controller
 2 @RequestMapping("/model")
 3 public class ModelController {
 4 
 5     @RequestMapping("/register")
 6     public ModelAndView register(User user){
 7 
 8         ModelAndView mv = new ModelAndView("home"); //视图名home
 9         mv.addObject("user", user);
10 
11         return mv; //模型名mv
12     }
13 }

 Map:

 1 @Controller
 2 @RequestMapping("/Map")
 3 public class ModelController {
 4 
 5     @RequestMapping("/register")
 6     public String register(User user, Map<String, Object> map){
 7 
 8         map.put("user", user);
 9 
10         return "home";
11     }
12 }

 Model:

 1 @Controller
 2 @RequestMapping("/model")
 3 public class ModelController {
 4 
 5     @RequestMapping("/register")
 6     public String register(User user, Model model){
 7 
 8         model.addAttribute("user", user);
 9     // model.addAttribute(user);这种隐性添加数据时,Model会自动装备key,key="userList"
10         return "home";
11     }
12 }

以上是关于Spring之模型的主要内容,如果未能解决你的问题,请参考以下文章

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

[死磕 Spring 4/43] --- IOC 之 获取验证模型

Spring boot:thymeleaf 没有正确渲染片段

面向面试编程代码片段之GC

AJAX相关JS代码片段和部分浏览器模型