• Spring 域对象共享数据


    1、使用ServletAPI向request域对象共享数据

    首页

    <a th:href="@{/testServletAPI}">测testServletAPIa><br>
    
    • 1

    success.html

    DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Titletitle>
    head>
    <body>
    <p>success!p>
    <p th:text="${testScope}">标签体原始值p>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    @RequestMapping("/testServletAPI")
    public String testServletAPI(HttpServletRequest request){
        request.setAttribute("testScope", "hello,servletAPI");
        return "success";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    <a th:href="@{/testModelAndView}">测testServletAPIa><br>
    
    • 1
    @RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView(){
        /**
         * ModelAndView有Model和View的功能
         * Model主要用于向请求域共享数据
         * View主要用于设置视图,实现页面跳转
         */
        ModelAndView mav = new ModelAndView();
        //向请求域共享数据
        mav.addObject("testScope", "hello,ModelAndView");
        //设置视图,实现页面跳转
        mav.setViewName("success");
        return mav;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    succss.html不变

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

    <a th:href="@{/testModel}">测/testModela><br>
    
    • 1

    succss.html 不变

    @RequestMapping("/testModel")
    public String testModel(Model model){
        model.addAttribute("testScope", "hello,Model");
        return "success";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    succss.html 不变

    <a th:href="@{/testMap}">测/testMapa><br>
    
    • 1
    @RequestMapping("/testMap")
    public String testMap(Map<String, Object> map){
        map.put("testScope", "hello,Map");
        return "success";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    succss.html 不变

    <a th:href="@{/testModelMap}">测/testModelMapa><br>
    
    • 1
    @RequestMapping("/testModelMap")
    public String testModelMap(ModelMap modelMap){
        modelMap.addAttribute("testScope", "hello,ModelMap");
        return "success";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    6、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 {}
    
    • 1
    • 2
    • 3
    • 4

    7、向session域共享数据

    succss.html
    注意session 里面的数据要加session.

    DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Titletitle>
    head>
    <body>
    <p>success!p>
    <p th:text="${session.testScope}">标签体原始值p>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    <a th:href="@{/testSession}">测/testSessiona><br>
    
    • 1
    @RequestMapping("/testSession")
        public String testSession(HttpSession session){
            session.setAttribute("testScope", "hello,session");
            return "success";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    8、向application域共享数据

    <a th:href="@{/testApplication}">测/testApplicationa><br>
    
    
    • 1
    • 2

    success.html

    DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Titletitle>
    head>
    <body>
    <p>success!p>
    <p th:text="${application.testScope}">标签体原始值p>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    @RequestMapping("/testApplication")
    public String testApplication(HttpSession session){
    	ServletContext application = session.getServletContext();
        application.setAttribute("testApplicationScope", "hello,application");
        return "success";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    【C语言】简单实现扫雷游戏
    什么蓝牙耳机音质高?四款公认音质高的蓝牙耳机
    开始智能制造的第一步,系统与设备的交互
    关于Android 日历事件的实现
    java计算机毕业设计酒店预约入住系统源码+mysql数据库+系统+lw文档+部署
    <C++>map 容器快速上手|自定义数据类型排序的避坑理解
    实现数据全字段搜索
    粒子群算法
    启发式的搜索策略
    关于Python自动化的就业真相
  • 原文地址:https://blog.csdn.net/Don_t_always_ail/article/details/133968881