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> |