文章目录
-
- 五、域对象共享数据
-
- 5.1、使用ServletAPI向request域对象共享数据
- 5.2、使用ModelAndView向request域对象共享数据
- 5.3、使用Model向request域对象共享数据
- 5.4、使用map向request域对象共享数据
- 5.5、使用ModelMap向request域对象共享数据
- [5.6 Model、ModelMap、Map的关系](#5.6 Model、ModelMap、Map的关系)
- 5.7、向session域共享数据
- 5.8、向application域共享数据
五、域对象共享数据
5.1、使用ServletAPI向request域对象共享数据
html
<a th:href="@{testServletAPI}">测试通过ServletAPI向请求域共享数据</a>
java
@RequestMapping("/testServletAPI") public String testServletAPI(HttpServletRequest request){ request.setAttribute("testScope","hello,servletAPI"); return "success"; }
html
<p th:text="${testScope}"></p>
5.2、使用ModelAndView向request域对象共享数据
html
<a th:href="@{/testmav}">测试通过ModelAndView向请求域共享数据</a>
java
@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;
}
html
<p th:text="${testReqeustScope}"></p>
5.3、使用Model向request域对象共享数据
html
<a th:href="@{/testmodel}">测试通过Model向请求域共享数据</a><br>
java
@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域对象共享数据
java
@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域对象共享数据
java
@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域共享数据
html
<a th:href="@{/testsession}">测试通过session向回话域共享数据</a><br>
java
@RequestMapping("/testsession")
public String testSession(HttpSession session){
session.setAttribute("testSessionScope","hello,session");
return "success";
}
html
<p th:text="${session.testSessionScope}"></p>
5.8、向application域共享数据
java
@RequestMapping("/testapplication")
public String testApplication(HttpSession session){
ServletContext servletContext = session.getServletContext();
servletContext.setAttribute("testApplicationScope","hello,Application");
return "success";
}
html
*<!--**通过**${application.**属性名**}**获取的是**application**域对象数据**--> * <p th:text="${application.testApplicationScope}"></p>
}
html
*<!--**通过**${application.**属性名**}**获取的是**application**域对象数据**--> * <p th:text="${application.testApplicationScope}"></p>