当前位置: 首页 > article >正文

SpringMVC域对象共享数据

目录

一.向 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域对象共享数据

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

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

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

@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 域对象共享数据。

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

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

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

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

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

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

@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对象作为参数来接收模型数据,并将其传递给视图。这个接口就像是一个数据存储的通用容器,为不同的数据类型提供了统一的存储方式。

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 域对象共享数据。

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

四.向application域共享数据

        通过session对象获取application

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


http://www.kler.cn/a/399884.html

相关文章:

  • 高斯数据库Postgresql死锁和锁表解决方法
  • 学习threejs,使用AnimationMixer实现变形动画
  • 【ARM】MDK在debug模式下的Registers窗口包含哪些内容
  • 基于YOLOv8深度学习的智慧课堂学生专注度检测系统(PyQt5界面+数据集+训练代码)
  • Ubuntu 的 ROS 操作系统 turtlebot3 导航仿真
  • 【springboot】启动原理
  • 新版自助笔记-工作记录-2024-11-18
  • 云安全之云计算基础
  • 【Linux】实现一个简易的进程池
  • 中国省级金融发展水平指数(金融机构存款余额、贷款余额、GDP)2020-2023年
  • 整理:4篇专注于多模态大语言模型(MLLM)的瘦身变体论文
  • 一文说清:c++标准库
  • 电脑msvcr100.dll丢失的解决方法,详细介绍多个解决方法
  • 上市公司企业研发操纵数据集(2008-2023年)
  • 【鸿蒙开发】第十五章 H5与端侧交互、Cookies以及Web调试
  • Video Duplicate Finder 快速识别并去除重复的视频和图像!
  • 大数据算法:三、梯度下降
  • Linux 中怎样把正在执行的任务放到后台执行
  • vue3 路由写法及传参方式 !超详细
  • 开源物业管理系统助力智能社区提升服务效率与用户体验
  • 基于Java Springboot北工国际健身俱乐部系统
  • 数据结构哈希表-(开放地址法+二次探测法解决哈希冲突)(创建+删除+插入)+(C语言代码)
  • 用Rust TypeMap安全存储多种类型数据
  • 【知识科普】统一身份认证CAS
  • PGMP-练DAY26
  • django的model时间怎么转时间戳