SpringMVC学习 -- ModelAndView , Model , ModelMap , Map 及 @SessionAttributes 的使用
输出模型数据:
- ModelAndView:处理方法返回值类型为 ModelAndView 时 , 其中包含视图和模型信息。方法体即可通过该对象添加模型数据 , 即 SpringMVC 会把 ModelAndView 中的 model 模型放入到 request 域对象中。
- Map, Model, ModelMap:目标方法的入参中包含 Map, Model, ModelMap 类型的数据, 返回值是 String 类型,Spring MVC 会自动把 Map, Model, ModelMap转化成模型信息放入到 request 域对象中,把返回的 String 类型数据转化成视图信息。
- @SessionAttributes:只能定义在 Class, interface , enum 上。@SessionAttributes 除了可以通过属性名指定需要放到会话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中。Spring MVC 将在模型中对应的属性暂存到 HttpSession 中。
- value:指定的属性名。可以是 String[] 类型的数据。
- type:模型属性对应的类型。可以是 Class<?>[] 类型的数据。
- @ModelAttribute:方法入参标注该注解后 , 入参的对象就会放到数据模型中(暂时不太懂)。
package com.itdoc.springmvc.entities; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map; /**
* @BLOG http://www.cnblogs.com/goodcheap
* @DESCRIBE
* @AUTHOR WángChéngDá
* @DATE 2017-03-09 13:55
*/
@Controller
/**
* @SessionAttributes 只能定义在 Class, interface , enum 上。
* @SessionAttributes 除了可以通过属性名指定需要放到会话中的属性外,
* 还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中。
* Spring MVC 将在模型中对应的属性暂存到 HttpSession 中。
* •value:指定的属性名。可以是 String[] 类型的数据。
* •type:模型属性对应的类型。可以是 Class<?>[] 类型的数据。
*/
//@SessionAttributes(value = {"time", "names"}, types = {String.class, User.class})
public class TestModelAndView { public static final String SUCCESS = "success"; @ModelAttribute
public void getUser(@RequestParam(value = "id", required = false) Integer id,
Map map) {
System.out.println("I am TestModelAndView's getUser method...");
if (id != null) {
//模拟从数据库获取对象
User user = new User(1, "Tom", 12, "123456", "a@aaa.com");
System.out.println("从数据库中获取一个对象: " + user);
map.put("user", user);
}
} @RequestMapping(value = "/updateUser", method = RequestMethod.POST)
public String updateUser(User user) {
System.out.println("修改: " + user);
return SUCCESS;
} @RequestMapping("/getModel")
public String getModel(Model model) {
model.addAttribute("names", Arrays.asList("Tom", "Jack", "Lucy", "Mark"));
model.addAttribute("time", new Date());
model.addAttribute("school", "东北财经大学");
model.addAttribute("user", new User("Tom", 13));
return SUCCESS;
} @RequestMapping("/getModelMap")
public String getModelMap(ModelMap modelMap) {
List<String> strings = Arrays.asList("Tom", "Jack", "Lucy", "Mark");
modelMap.put("names", Arrays.asList("Tom", "Jack", "Lucy", "Mark"));
modelMap.put("time", new Date());
modelMap.put("school", "东北财经大学");
modelMap.put("user", new User("Tom", 13));
return SUCCESS;
} /**
* 目标方法的入参中包含 Map, Model, ModelMap 类型的数据, 返回值是 String 类型,
* Spring MVC 会自动把 Map, Model, ModelMap 转化成模型信息放入到 request 域对象中,
* 把返回的 String 类型数据转化成视图信息。
*
* @param map
* @return
*/
@RequestMapping("/getMap")
public String getMap(Map<String, Object> map, String name) {
map.put("names", Arrays.asList("Tom", "Jack", "Lucy", "Mark"));
map.put("time", new Date());
map.put("school", "东北财经大学");
map.put("user", new User("Tom", 13));
return SUCCESS;
} /**
* 目标的返回值是 ModelAndView, 其中包含视图和模型信息。
* SpringMVC 会把 ModelAndView 中的 model 模型放入到 request 域对象中。
*
* @return
*/
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView() {
String viewName = SUCCESS;
ModelAndView mv = new ModelAndView(viewName);
mv.addObject("names", Arrays.asList("Tom", "Jack", "Lucy", "Mark"));
mv.addObject("time", new Date());
mv.addObject("school", "东北财经大学");
mv.addObject("user", new User("Tom", 13));
System.out.println(mv);
return mv;
}
}
SpringMVC学习 -- ModelAndView , Model , ModelMap , Map 及 @SessionAttributes 的使用的更多相关文章
- springMVC数据模型model,modelmap,map,@ModelAttribute的相互关系
结论: a.注解方法中形参为model,modelmap,map一个或几个时,他们指向的引用对象相同即他们的值相同. b.当使用@ModelAttribute注解请求参数时,springmvc自动将该 ...
- SpringMVC学习四(@ModelMap @RequestBody等等的说明)
参考如下 http://www.cnblogs.com/HD/p/4107674.html http://www.cnblogs.com/qiankun-site/p/5774325.html @re ...
- spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明: ModelAn ...
- springMVC:modelandview,model,controller,参数传递
转载:http://blog.csdn.net/wm5920/article/details/8173480 1.web.xml 配置: copy <> ></> & ...
- SpingMVC ModelAndView, Model,Control以及参数传递
1.web.xml 配置: <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class& ...
- SpingMVC ModelAndView, Model,Control以及参数传递总结
1.web.xml 配置: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <servlet> <servlet-name>dispatcher& ...
- ModelAndView存取数Model、Map、ModelMap
1.从名字上看ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用.(对应mvc配置,寻找模型,返回视图.) 2.业务处理器调用模型层处理完用户请求后,把 ...
- springboot中model,modelandview,modelmap的区别与联系
springboot 中Model,ModelAndView,ModelMap的区别与联系 Model是一个接口,它的实现类为ExtendedModelMap,继承ModelMap类 public c ...
- SpringMVC Map Model ModelMap 和 ModelAndView
代码: package com.gaussic.controller; import com.gaussic.model.AccountModel; import org.springframewor ...
随机推荐
- 初步学习pg_control文件之五
接前文 初步学习pg_control文件之四,继续看何时出现 DB_IN_CRASH_RECOVERY: 看下面代码就比较清楚了:如果对 InArchiveRecovery 判断值为假,而且 读取出 ...
- 【廖雪峰老师python教程】——模块
使用模块 任何模块代码的第一个字符串都被视为模块的文档注释: 使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名: 当我们在命令行运行模块文件时,Python解释器把 ...
- MySQL高可用之PXC安装部署
Preface Today,I'm gonna implement a PXC,Let's see the procedure. Framework Hostname IP P ...
- Loadrunner11.0安装与简单使用
公司开发了APP或者微信小程序啊什么的,都会先进行性能测试,而性能测试一般肯定会来测试接口的压测,并发.Loadrunner是一个很强大的测试工具,它是一种预测系统行为和性能的负载测试工具.通过以模拟 ...
- 12.0 Excel表格读取
Pycharm安装 xlrd 首先在xuexi目录下创建一个ExcelFile文件,让后在ExcelFile下创建一个Excel表格 创建表格时记得把单元格的格式设置为[文本] 我们设置为文本之后,存 ...
- 梳理 Opengl ES 3.0 (二)剖析一个GLSL程序
OpenGL ES shading language 3.0 也被称作 GLSL,是个 C风格的编程语言. Opengl ES 3.0内部有两种可编程处理单元,即Vertex processor和Fr ...
- octomap建立
1.安装ros的octomap ---已完成 2.阅读相关论文,了解其机理,并编写程序实现. 参考网页:https://www.cnblogs.com/gaoxiang12/p/5041142.ht ...
- 数据结构-排序-shell排序
shell排序 首先,希尔排序适用于待排序列关键有序. 接下来一步步图解SHELL排序 我为了方便理解内部操作.我先把代码输出整理下. #include<iostream> #includ ...
- mysql语法总结
增: 删: 改: 查: 索引: 建: alter table: sql一些常用的经典语句,最后是select as的用法
- HDU 4757 Tree(可持久化字典树)(2013 ACM/ICPC Asia Regional Nanjing Online)
Problem Description Zero and One are good friends who always have fun with each other. This time, ...