SpringMVC-共享数据

发布时间:2024年01月08日

使用servletapi向request 域对象 共享数据

再controller中编写方法

?//使用servletAPI向request域对象共享数据
?@RequestMapping("/testReq")
?public String req(HttpServletRequest request){
??
? ? ?request.setAttribute("testReq","hello,servletapi");
??
? ? ?return "success";
?}

在success.html 中

页面即显示 hello,servletapi?

使用 ModelAndView向request域对象 共享数据

?/**
? * ModelAndView 包含Model 和View的功能
? * Model 主要用于向请求域共享数据
? * View  主要用于设置视图,实现页面跳转
? * @return
? */
?@RequestMapping("/testModelAndView")
?public ModelAndView testModelAndView(){
? ? ?ModelAndView mav = new ModelAndView();
? ? ?//设置视图名称
? ? ?mav.setViewName("success");
? ? ?//处理模型数据,即向请求域request共享数据
? ? ?mav.addObject("testMV","hello,mv");
? ? ?return mav;
?}

在success.html 中 <p th:text="${testMV}"></p>

页面显示: hello,mv

使用 Model向request域对象 共享数据

?@RequestMapping("/testModel")
?public String testModel(Model model){
? ? ?model.addAttribute("testModel","hello,model");
? ? ?return "success";
?}

在success.html 中 <p th:text="${testModel}"></p>

页面显示: hello,model

使用 map向request域对象 共享数据

?@RequestMapping("/testMap")
?public String testMap(Map<String,Object>map){
? ? ?map.put("testMap","hello,map");
? ? ?return "success";
?}

在success.html 中 <p th:text="${testMap}"></p>

页面显示: hello,map

使用 ModelMap向request域对象 共享数据

?@RequestMapping("/testModelMap")
?public String testModelMap(ModelMap map){
? ? ?map.put("testModelMap","hello,modelmap");
? ? ?return "success";
?}

在success.html 中 <p th:text="${testModelMap}"></p>

页面显示: hello,modelmap

Model, ModelMap,Map的关系

Model,ModelMap,Map类型的参数其实本质上都是 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("/tesSession")
?public String tesSession(HttpSession session){
? ? ?session.setAttribute("tesSession","hello,session");
? ? ?return "success";
?}

在success.html 中 <p th:text="${session.tesSession}"></p>

页面显示: hello,session

session 默认失效时间 半小时

向application域共享数据

?
@RequestMapping("/testApplication")
?public String testApplication(HttpSession session){
? ? ?ServletContext application = session.getServletContext();
? ? ?application.setAttribute("testApplication","hello,Application");
? ? ?return "success";
?}

在success.html 中 <p th:text="${application.testApplication}"></p>

页面显示: hello,Application

文章来源:https://blog.csdn.net/ly121862/article/details/135448919
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。