SpringMVC域对象共享数据

embedded/2024/11/22 5:04:23/

目录

一.向 request 域对象共享数据

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

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

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

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

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

二.Model、ModelMap、Map的关系

三.向session域共享数据

四.向application域共享数据


一.向 request 域对象共享数据

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

java">@RequestMapping("/testServletAPI")
public String testServletAPI(HttpServletRequest request){request.setAttribute("testScope", "hello,servletAPI");return "success";
}

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

  ModelAndView对象在 SpringMVC 中是一个用于封装视图和模型数据的重要对象。我们可以在控制器方法中创建一个ModelAndView对象,并且通过这个对象向 request 域对象共享数据。

java">@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.3使用Model向request域对象共享数据

        在 SpringMVC 的控制器方法中,我们可以接收一个Model对象作为参数,并且通过这个对象向 request 域对象共享数据。

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

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

        我们也可以在控制器方法中接收一个Map对象作为参数,并且通过这个对象向 request 域对象共享数据。

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

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

  ModelMap是一个扩展了LinkedHashMap的类,它可以用于在控制器方法中向 request 域对象共享数据。

java">@RequestMapping("/testModelMap")
public String testModelMap(ModelMap modelMap){modelMap.addAttribute("testScope", "hello,ModelMap");return "success";
}

二.Model、ModelMap、Map的关系

Model、ModelMap、Map类型的参数其实本质上都是 BindingAwareModelMap 类型的

(1)Model是一个接口,它定义了一组用于向视图传递数据的方法。这个接口就像是一个数据传递的规范,为不同的实现提供了统一的标准。
(2)ModelMap是一个实现了Model接口的类,它扩展了LinkedHashMap,可以用于在控制器方法中向 request 域对象共享数据。这个类就像是一个数据传递的具体实现,为数据的共享提供了实际的操作方法。
(3)Map是 Java 中的一个接口,它定义了一组用于存储键值对的方法。在 SpringMVC 中,我们可以使用Map对象作为参数来接收模型数据,并将其传递给视图。这个接口就像是一个数据存储的通用容器,为不同的数据类型提供了统一的存储方式。

java">public interface Model{}
public class ModelMap extends LinkedHashMap<String, Object> {}
public class ExtendedModelMap extends ModelMap implements Model {}
public class BindingAwareModelMap extends ExtendedModelMap {}

三.向session域共享数据

        在 SpringMVC 中,我们可以通过注入HttpSession对象来向 session 域对象共享数据。

java">@RequestMapping("/testSession")
public String testSession(HttpSession session){session.setAttribute("testSessionScope", "hello,session");return "success";
}

四.向application域共享数据

        通过session对象获取application

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


http://www.ppmy.cn/embedded/139527.html

相关文章

一文读懂Redis6的--bigkeys选项源码以及redis-bigkey-online项目介绍

一文读懂Redis6的--bigkeys选项源码以及redis-bigkey-online项目介绍 本文分为两个部分&#xff0c;第一是详细讲解Redis6的--bigkeys选项相关源码是怎样实现的&#xff0c;第二部分为自己对--bigkeys源码的优化项目redis-bigkey-online的介绍。redis-bigkey-online是自己开发的…

Springboot + vue 健身房管理系统项目部署

1、前言 ​ 许多人在拿到 Spring Boot 项目的源码后&#xff0c;不知道如何运行。我以 Spring Boot Vue 健身房管理系统的部署为例&#xff0c;详细介绍一下部署流程。大多数 Spring Boot 项目都可以通过这种方式部署&#xff0c;希望能帮助到大家。 ​ 2、项目查看 ​ 首…

Linux应用项目之量产工具(四)——UI系统

前言 前面我们完成了量产工具的显示、输入和文字系统&#xff0c;如下&#xff1a; 量产工具&#xff08;一&#xff09;——显示系统 量产工具&#xff08;二&#xff09;——输入系统 量产工具&#xff08;三&#xff09;——文字系统 项目框架 本节我们来实现量产工具的…

【大数据学习 | flume】flume Sink Processors与拦截器Interceptor

1. Failover Sink Processor 故障转移处理器可以同时指定多个sink输出&#xff0c;按照优先级高低进行数据的分发&#xff0c;并具有故障转移能力。 需要修改第一台服务器agent a1.sourcesr1 a1.sinksk1 k2 a1.channelsc1 a1.sources.r1.typenetcat a1.sources.r1.bindworker…

word转pdf保存高清图技巧

1. PPT编辑的图片转矢量图&#xff0c;导入word 2.PPT的图全选复制到visio&#xff0c;再从visio复制到word 3.使用adboe PDF word插件&#xff0c;另存为ADOBE PDF。 图片保存质量 另存为DPF< 导入PDF < 另存为ADOBE PDF 但是ADOBE PDF有时候图片保存出来会一片空白…

uni-app获取安全区域

2024年8月2日 使用自定义导航栏的uni-app项目在真机演示时&#xff0c;可能会出现页面内容被手机的刘海或者状态栏给遮挡了&#xff0c;或者在小程序上给胶囊按钮给档住了。这时候就需要获取刘海屏状态了和胶囊按钮的高度来获取安全渲染区域. 1. CSS内置变量 来自uni-aap官网&…

32.2 prometheus倒排索引统计功能

本节重点介绍 : 获取采集端的高基数metrics的tsdb页面解析tsdb统计函数Stats源码解读 依赖倒排索引统计 获取采集端的高基数metrics tsdb页面解析 Top 10 label names with value count&#xff1a; 标签中value最多的10个Top 10 series count by metric names&#xff1a…

如何提高代理IP的并发能力

在数据采集的领域&#xff0c;时间就是金钱&#xff0c;效率就是生命。代理IP的并发能力直接关系到我们能否快速、高效地获取数据。那么&#xff0c;如何提高代理IP的并发能力呢&#xff1f;今天&#xff0c;我们就来聊聊这个话题&#xff0c;为你的数据采集项目提速。 并发&a…