目录
五、域对象共享数据
5.1、使用ServletAPI向request域对象共享数据
<a th:href="@{testServletAPI}">测试通过ServletAPI向请求域共享数据</a>
@RequestMapping("/testServletAPI") public String testServletAPI(HttpServletRequest request){ request.setAttribute("testScope","hello,servletAPI"); return "success"; }
<p th:text="${testScope}"></p>
5.2、使用ModelAndView向request域对象共享数据
<a th:href="@{/testmav}">测试通过ModelAndView向请求域共享数据</a>
@RequestMapping("/testmav")
public ModelAndView testmav(){
/**
* ModelAndView包含Model和View的功能
* Model:向请求域中共享数据
* View:设置逻辑视图实现页面跳转
*/
ModelAndView modelAndView = new ModelAndView();
//向请求域中共享数据
modelAndView.addObject("testReqeustScope","hello,ModelAndView");
//设置逻辑视图
modelAndView.setViewName("success");
//使用View设置逻辑视图,但是控制器方法一定要将ModelAndView的对象作为方法的返回值
return modelAndView;
}
<p th:text="${testReqeustScope}"></p>
5.3、使用Model向request域对象共享数据
<a th:href="@{/testmodel}">测试通过Model向请求域共享数据</a><br>
@RequestMapping("/testmodel")
public String testmodel(Model model){
//org.springframework.validation.support.BindingAwareModelMap
System.out.println(model.getClass().getName());
model.addAttribute("testReqeustScope","hello,Model");
return "success";
}
5.4、使用map向request域对象共享数据
@RequestMapping("/testMap")
public String testMap(Map<String,Object> map){
//org.springframework.validation.support.BindingAwareModelMap
System.out.println(map.getClass().getName());
map.put("testReqeustScope","hello,map");
return "success";
}
5.5、使用ModelMap向request域对象共享数据
@RequestMapping("/testmodelmap")
public String testModelMap(ModelMap modelMap){
//org.springframework.validation.support.BindingAwareModelMap
System.out.println(modelMap.getClass().getName());
modelMap.addAttribute("testReqeustScope","hello,ModelMap");
return "success";
}
5.6 Model、ModelMap、Map的关系
Model、ModelMap、Map类型的参数本质上其实都是BindingAwareModelMap类型的
org.springframework.validation.support.BindingAwareModelMap
所以在底层中,这些类型的形参最终都是通过BindingAwareModelMap创建的
5.7、向session域共享数据
<a th:href="@{/testsession}">测试通过session向回话域共享数据</a><br>
@RequestMapping("/testsession")
public String testSession(HttpSession session){
session.setAttribute("testSessionScope","hello,session");
return "success";
}
<p th:text="${session.testSessionScope}"></p>
5.8、向application域共享数据
@RequestMapping("/testapplication")
public String testApplication(HttpSession session){
ServletContext servletContext = session.getServletContext();
servletContext.setAttribute("testApplicationScope","hello,Application");
return "success";
}
*<!--**通过**${application.**属性名**}**获取的是**application**域对象数据**--> * <p th:text="${application.testApplicationScope}"></p>
标签:springMVC,request,对象,session,ModelAndView,共享,数据,Model
From: https://www.cnblogs.com/ning23/p/18260086