SpringMVC处理模型数据(1)
来源:互联网 发布:软件测试职业规划 编辑:程序博客网 时间:2024/05/20 09:43
ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据
Map 及 Model: 入参为 org.springframework.ui.Model、org.springframework.ui. ModelMap 或 java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。
@SessionAttributes: 将模型中的某个属性暂存到HttpSession 中,以便多个请求之间可以共享这个属性
@ModelAttribute:方法入参标注该注解后, 入参的对象 就会放到数据模型中
在本文中中重点讨论前三种方式,因为最后一种需要花大量的篇幅来讲解。详见SpringMVC处理模型数据(2)
演示代码的顺序按照index.jsp(初始界面),Controller控制器,success.jsp(显示结果)
1、ModelAndView
控制器处理方法的返回值如果为 ModelAndView, 则其既 包含视图信息,也包含模型数据信息。
添加模型数据的方法:
1)、添加单个键值对(有点类似request域对象的setAttribute方法)
MoelAndView addObject(String attributeName, Object attributeValue)
2)、添加多个键值对,即直接添加一个map集合
ModelAndView addAllObject(Map<String, ?> modelMap)
设置视图的方法:
1)、设置视图对象
void setView(View view)
2)、设置视图名
void setViewName(String viewName)
SpringMVC会把 ModelAndView 中的 model 数据放入 Request 域对象中
<a href="springmvc/testModelAndView">testModelAndView</a>
@RequestMapping("/testModelAndView")public ModelAndView testModelAndView(){// 创建一个ModelAndView类型的对象,指定视图名称ModelAndView modelAndView = new ModelAndView(SUCCESS);// 为modelAndView添加modle数据modelAndView.addObject("time", new Date());return modelAndView;}
<h3>${requestScope.time}</h3>
2、Map 及 Model
目标方法的入参可以是Map类型(实际上也可以是Model类型或者ModelMap类型)
* SpringMVC会将此Map数据作为ModelAndView的model
* 将目标方法的返回值作为ModelAndView的view
<a href="springmvc/testMap">testMap</a>
@RequestMapping("/testMap")public String testMap(Map<String, Object> map){map.put("names", Arrays.asList("Tom","Jerry","mike"));return SUCCESS;}
<h3>${requestScope.names}</h3>
3、SessionAttributes
目标方法默认会将参数放在Request域对象中,加上此注解可以将参数同时放在Session域对象中
* 注意,此注解只能使用在类的上面
* 使用此注解时有两种方式可以指定哪些数据会被放在HttpSession中
* 第一种方式是直接指定参数名称:也就是使用value属性
* 第二种则是指定参数的类型:也就是使用types属性,比如types = String.class
* 当然,两种属性都支持多值操作
<a href="springmvc/testSessionAttributes">testSessionAttributes</a>
@SessionAttributes(value = "user",types = String.class)@RequestMapping("/springmvc")@Controllerpublic class RequestMappingTest {public final static String SUCCESS = "success";@RequestMapping("/testSessionAttributes")public String testSessionAttributes(Map<String, Object> map) {User user = new User("rgx", "123456", "rgx@love.com", 21, new Address("Hubei", "Yichang"));map.put("user", user);map.put("school", "CTGU");return SUCCESS;}}
request:<h3>${requestScope.user}</h3><br><br>session:<h3>${sessionScope.user}</h3><br><br>request:<h3>${requestScope.school}</h3><br><br>session:<h3>${sessionScope.school}</h3>注意上面的控制器代码中存在SessionAttributes注解,两个属性value和types分别决定将什么对应参数名或者对应类型的model属性数据被放入HttpSession作用域内。
- SpringMVC处理模型数据(1)
- SpringMVC处理模型数据
- springmvc 处理模型数据
- springmvc 处理模型数据
- SpringMVC-处理模型数据
- SpringMVC处理模型数据
- SpringMVC--处理模型数据
- SpringMVC处理模型数据
- SpringMVC处理模型数据
- SpringMVC处理模型数据
- SpringMVC学习笔记(6):处理模型数据(1)
- SpringMVC实战(四)-处理模型数据
- SpringMVC学习(7):处理模型数据
- SpringMVC处理模型数据(2)
- SpringMVC学习(四)-处理模型数据
- SpringMVC-05 处理模型数据
- 10009---SpringMVC 处理模型数据
- springmvc中的处理模型数据
- PAT 乙级 1038. 统计同成绩学生(20)
- Goldbach`s Conjecture (数论,素数打表)
- Guava缓存值CacheBuilder介绍
- linux系统性能调优第一步——性能分析(vmstat)
- str-...的函数的模拟实现学习
- SpringMVC处理模型数据(1)
- Android编程实现自动检测版本及自动升级的方法
- leetcode55. Jump Game
- EditText 显示明文和密码
- c++实验6
- 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派
- 【C语言常识】mdk:Compiler optimization levels and the debug view
- Git自动化部署代码
- Starting MySQL.The server quit without updating PID file (/[失败]ysql/datadir/3306/data/mysql.pid).