提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、什么是向域中共享数据
向域对象共享数据;
解释一下什么是在域对象中共享数据(主要是我有点忘记了有点忘了);
在SpringMVC中常用的域有以下三个:
request:数据在当前请求有效,请求转发后有效,重定向无效
session:数据在关闭浏览器前有效,中途关闭服务器,数据钝化(还在),重启浏览器数据又会活化(还能用)----这里如果想关闭服务器数据还在的话需要在idea中自行设置
application:数据在关闭服务器前有效(关闭浏览器数据还在)
所以,往域对象中共享数据也就是在上面的三个范围内共享数据
二、通过ModelAndView向请求域共享数据
index页面传入参数的代码
<a th:href="@{/test/mav}">测试ModelAndView</a><br>
控制层代码
@RequestMapping("/test/mav")
public ModelAndView testMAV(){
/*
ModelAndVies包含Model和view功能
Model;向请求域中共享数据
View;设置逻辑视图实现页面跳转
* */
ModelAndView modelAndView = new ModelAndView();
/*
* 向请求域共享数据
* modelAndView.addObject("testRquestScope","hello,ModelAndView");
* 中testRquestScope是键,hello,ModelAndView是值
* 也就是说,我们在页面上需要获取hello,ModelAndView时需要得到testRquestScope(详细键success.html中的设置方式)
* */
modelAndView.addObject("testRquestScope","hello,ModelAndView");
//设置逻辑视图
modelAndView.setViewName("success");
return modelAndView;
}
success页面获取参数代码
<p th:text="${testRquestScope}"></p>
三、使用Model向请求域共享数据
index页面传入参数的代码
<a th:href="@{/test/Model}">测试Model</a><br>
控制层代码
//注意这里Model是一个接口,直接使用也是因为DispatcherServlet
@RequestMapping("/test/Model")
public String TestMAVbyModel(Model model){
System.out.println(model.getClass().getName());
//输出org.springframework.validation.support.BindingAwareModelMap
model.addAttribute("testModel","hello,Model");
return "success";
}
success页面获取参数代码
<p th:text="${testModel}"></p>
四、使用ModelMap向请求域共享数据
index页面传入参数的代码
<a th:href="@{/test/ModelMap}">测试ModelMap</a><br>
控制层代码
@RequestMapping("/test/ModelMap")
public String TestMAVbyModelMap(ModelMap modelMap){
System.out.println(modelMap.getClass().getName());
//输出org.springframework.validation.support.BindingAwareModelMap
modelMap.addAttribute("testModelMap","hello,ModelMap");
return "success";
}
success页面获取参数代码
<p th:text="${testModelMap}"></p>
五、使用map向请求域共享数据
index页面传入参数的代码
<a th:href="@{/test/Map}">测试Map</a><br>
控制层代码
//注意这里map是一个接口,直接使用也是因为DispatcherServlet
@RequestMapping("/test/Map")
public String TestMAVbyMap(Map map){
System.out.println(map.getClass().getName());
//输出org.springframework.validation.support.BindingAwareModelMap
map.put("testmap","hello,map");
return "success";
}
success页面获取参数代码
<p th:text="${testmap}"></p>
六、向session域中共享数据
index页面传入参数的代码
<a th:href="@{/test/session}">测试session</a><br>
控制层代码
@RequestMapping("/test/session")
public String TestSessionScope(HttpSession session){
session.setAttribute("TestSession","heloo,Session");
//session网页关闭会话消失
//注意在success中得到数据的方式和request、不一样(见success.html)
//获取方式;session.TestSession
return "success";
}
success页面获取参数代码
<p th:text="${session.TestSession}"></p>
七、向application域中共享数据
index页面传入参数的代码
<a th:href="@{/test/application}">测试application</a><br>
控制层代码
@RequestMapping("/test/application")
public String TestAplicationScope(HttpSession session){
//注意apilication可以使用session对象或者request对象调用返回得到
ServletContext application = session.getServletContext();
application.setAttribute("Testapplication","hello,application");
//application;服务器关闭数据消失
//注意在success中得到数据的方式和request、不一样(见success.html)
//获取方式;setAttribute.Testapplication
return "success";
}
success页面获取参数代码
<p th:text="${application.Testapplication}"></p>