【SpringMVC】 模型数据
来源:互联网 发布:迷你led显示屏软件 编辑:程序博客网 时间:2024/06/05 04:17
上篇文章实现了springmvc的一个小的示例,在这个实例中我们做到了去接受服务端的请求。今天我们就来看一下如何去返回数据,并显示到页面上。
springMVC提供了如下几种途径输出模型数据。
一、ModelAndView
如果Controller中方法返回值为该对象,我们就可以通过该对象添加数据和视图。该对象有很多的构造函数和方法,但是这些方法都是大同小异。总的来说还是去添加视图和数据。我们看一个例子。
@RequestMapping("/modelAndView")public ModelAndView hello2(){ Person p=new Person(); p.setName("jack"); p.setAge(26); ModelAndView modelAndView=new ModelAndView(); modelAndView.addObject("p",p); modelAndView.setViewName("hello"); return modelAndView;}
<body> 姓名:<span>${p.name}</span> <br /> 年龄:<span>${p.age}</span></body>
二、Map或者Model
该对象放到了方法中的入参中。如果方法的入参使用了该对象,SpringMVC会将隐含模型的引用传递给这些入参。在方法体内,我们可以通过这个入参对象访问到模型中的所有数据,也可以向模型中添加新的数据属性。
来一个例子
@RequestMapping("/map")public String hello3(Map<String,Object> map){ Person p=new Person(); p.setName("andy"); p.setAge(27); map.put("p",p); return "hello";}
三、@SessionAttribute
如果我们希望在多个请求直接共用一个模型属性数据,那么我们就可以在控制器的类上使用该注解,SpringMVC将在模型中对应的属性暂存到HttpSession中。
@SessionAttributes 除了可以通过属性名指定需要放到会话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中
–@SessionAttributes(types=User.class) 会将隐含模型中所有类型为User.class 的属性添加到会话中。
–@SessionAttributes(value={“user1”, “user2”})
–@SessionAttributes(types={User.class, Dept.class})
–@SessionAttributes(value={“user1”, “user2”},types={Dept.class})
@Controller@SessionAttributespublic class HelloWorld {@RequestMapping("/SessionAttributes")public ModelAndView hello4(){ ModelAndView modelAndView=new ModelAndView(); modelAndView.setViewName("hello"); Person p=new Person(); p.setName("Attributes_Li"); p.setAge(18); modelAndView.addObject("p",p); return modelAndView; } }
四、@ModelAttribute
该注解有两种使用的方式,可以用在方法上也可以用在方法参数上。
在方法定义上使用 @ModelAttribute 注解时,Spring MVC会在调用目标处理方法前先逐个调用在方法级上标注了 @ModelAttribute 的方法。
在方法上加入注解也会有两种方式,当没有返回值时,我们就需要向该注解标识的方法中传递一个Model或者Map类型的参数来作为存储模型数据的容器
@ModelAttribute public void getName(Map<String, Object> map) { map.put("name", "jack"); }
当有返回值时,模型数据是被存储到SpringMVC为我们创建的隐式容器中。而
@ModelAttribute public Person getPerson(){ Person person = new Person(); person.setName("jack"); person.setAge(24); return person; }
默认的属性名是非限定类型名称的第一个字母小写后作为属性名,如果不想使用默认的则可以使用@ModelAttribute注解中的value属性来指定属性名。这时我们的注解就要放到方法入参中了。
@RequestMapping("/ModelAttribute1")public ModelAndView hello5(@ModelAttribute("user") Person){ ModelAndView modelAndView=new ModelAndView(); modelAndView.setViewName("hello"); return modelAndView;}
以上就是关于几种途径输出模型数据的方式。总结完了收获还是蛮大的。
- SpringMVC处理模型数据
- springmvc 处理模型数据
- springmvc 处理模型数据
- SpringMVC-处理模型数据
- SpringMVC处理模型数据
- 【SpringMVC】 模型数据
- SpringMVC--处理模型数据
- SpringMVC处理模型数据
- SpringMVC处理模型数据
- SpringMVC处理模型数据
- springMVC(7)------springMVC处理模型数据
- SpringMVC-05 处理模型数据
- 10009---SpringMVC 处理模型数据
- springmvc中的处理模型数据
- SpringMVC-4 处理模型数据
- springmvc-7,处理模型数据
- springmvc之处理模型数据
- SpringMVC中的处理模型数据
- JSP案例_简单实现用户信息的增、删、查、改
- Network In Network学习笔记
- spring 注解注入
- TCP的四种定时器
- 前端切图
- 【SpringMVC】 模型数据
- 欢迎使用CSDN-markdown编辑器
- Android Broadcas 广播
- Java数据传输结构设计
- 算法系列——Path Sum II
- 运行一个从GitHub上下载的vue项目的具体步骤
- 设计模式(2)--抽象工厂模式
- 制作简单的新闻客户端
- Codeforces #13C: Sequence 题解