目录
二、使用ModelAndView向request域对象共享数据
一、使用servletAPI向request域对象共享数据
@Controller
public class ScopeController {
//使用servletAPI向request域共享数据
@RequestMapping("/testRequest")
public String testRequest(HttpServletRequest request){
request.setAttribute("testRequestScope","hello");
return "success";
}
}
index.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>首页</h1>
<a th:href="@{/testRequest}">测试servletAPI共享数据</a>
</body>
</html>
success.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>成功</h1><br>
<p th:text="${testRequestScope}"></p>
</body>
</html>
二、使用ModelAndView向request域对象共享数据
@RequestMapping("/modelAndView")
public ModelAndView modelAndView(){
ModelAndView modelAndView = new ModelAndView();
//处理模型数据,向请求域request共享数据
modelAndView.addObject("testRequestScope","modelAndView");
//设置视图名称
modelAndView.setViewName("success");
return modelAndView;
}
三、使用Model向request域对象共享数据
@RequestMapping("/model")
public String model(Model model){
model.addAttribute("testRequestScope", "model");
return "success";
}
四、使用Map向request域对象共享数据
@RequestMapping("/map")
public String getMap(Map<String,Object> map){
map.put("testRequestScope","map");
return "success";
}
五、使用ModelMap向request域对象共享数据
@RequestMapping("/modelMap")
public String getModelMap(ModelMap modelMap){
modelMap.addAttribute("testRequestScope","modelmap");
return "success";
}
六、Model、Map、ModelMap三者关系
Model、Map、ModelMap类型参数本质上都是BindingAwareModelMap类型
public interface Model {}
public class ModelMap extends LinkedHashMap<String, Object> {}
public class ExtendedModelMap extends ModelMap implements Model {}
public class BindingAwareModelMap extends ExtendedModelMap {}
七、向session域共享数据
@RequestMapping("/session")
public String getSession(HttpSession session){
session.setAttribute("testSessionScope","session");
return "success";
}
前端页面:
index.html
<a th:href="@{/session}">使用session域</a>
success.html
<p th:text="${session.testSessionScope}"></p>
八、向application域共享数据
@RequestMapping("/application")
public String getApplication(HttpSession session){
ServletContext servletContext = session.getServletContext();
servletContext.setAttribute("testApplicationScope","application");
return "success";
}
<p th:text="${application.testApplicationScope}"></p>