首页 > 其他分享 >模型数据-如何放入request域中

模型数据-如何放入request域中

时间:2024-03-23 11:24:19浏览次数:26  
标签:return requestScope 模型 request master ModelAndView 放入

自动放入request域中

springmvc 会自动把获取的 model 模型,放入到 request 域中
验证代码
后端获取了master对象,这时就自动的把对象传到request域中了,为了验证这个猜想,我们需要从前端的jsp中看是否可以在request中取到master。

    //验证自动放入request域
    @RequestMapping("/master2")
    public String javaBean2(Master master){
        return "request";
    }

前端jsp,利用el表达式取到master

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
id:${requestScope.master.id}<br>
name:${requestScope.master.name}<br>
petname:${requestScope.master.pet.name}<br>
petage:${requestScope.master.pet.age}<br>
</body>
</html>

默认存放在requset中的属性名为类的类型名 首字母小写

验证
改名传入类的变量名,看看是否会改变。若改变后,前端将无法使用master拿到值了,则与变量名有关,反之若可以拿到,就与类的类型名有关。

//    验证requset属性名为类的类型名首字母小写
@RequestMapping("/master1")
public String javaBean1(Master master100){
    System.out.println(master100);
    return "request";
}

前端

id:${requestScope.master.id}<br>
name:${requestScope.master.name}<br>
petname:${requestScope.master.pet.name}<br>
petage:${requestScope.master.pet.age}<br>

HttpServletRequest添加属性到request域中

利用之前说到的servletApi知识点获取HttpServletRequest对象放入属性和属性值

    //验证HttpServletRequest存requset域中:
    @RequestMapping("/master3")
    public String javaBean3(Master master, HttpServletRequest request){
        request.setAttribute("myname","ayou");
        return "request";
    }

前端

myname:${requestScope.myname}

把Map中的数据添加到request域中

springMVC会把map中的k-v遍历存在request域中,若存放的是名称和springMVC自动放入的对象名称(默认存放在requset中的属性名为类的类型名 首字母小写)一样就会代替

//    map的k-v放入到request域对象中
    @RequestMapping("/master4")
    public String javaBean4(Master master, Map<String,Object> map){
        map.put("myname","hahaha");
		map.put("master",null);//把默认的master置空
        return "request";
    }

ModelAndView添加到request域中

和map的机制类似

  1. 从本质看,请求响应的方法 return "xx", 是返回了一个字符串,其实本质是返回了一个
    ModelAndView 对象,只是默认被封装起来的.
  2. ModelAndView 即可以包含 model 数据,也可以包含视图信息
  3. ModelAndView 对象的 addObject 方法可以添加 key-val 数据,默认在 request 域中
  4. ModelAndView 对象 setView 方法可以指定视图名称
   //返回ModelAndView对象,将数据放入到Request域中
    @RequestMapping("/master5")
    public ModelAndView javaBean5(Master master100, ModelAndView modelAndView){
        //放入属性到ModelAndView
        modelAndView.addObject("myname","geigeili");
        //指定跳转到的页面
        modelAndView.setViewName("request");
        //返回结果
        return modelAndView;
    }

把数据放入session域中

    //把数据放入session域中
    @RequestMapping("/master6")
    public String javaBean6(Master master100, HttpSession httpSession){
        //通过setAttribute放入属性
        httpSession.setAttribute("master" ,master100);
        httpSession.setAttribute("myname","wuyiwuaa");
        return "request";
    }

@ModelAttribute

在某个方法上,增加了@ModelAttribute 注解后,那么在调用该 Handler 的任何一个方法时,都会先调用这个方法

    //@ModelAttibute
    @ModelAttribute
    public void prepareData(){
        System.out.println("先调用我哦");
    }

应用实例
修改用户信息(就是经典的使用这种机制的应用),流程如下:

  1. 在修改前,在前置方法中从数据库查出这个用户
  2. 在修改方法(目标方法)中,可以使用前置方法从数据库查询的用户
  3. 如果表单中对用户的某个属性修改了,则以新的数据为准,如果没有修改,则以数据库的信息为准,比如,用户的某个属性不能修改,就保持原来的值

标签:return,requestScope,模型,request,master,ModelAndView,放入
From: https://www.cnblogs.com/yousuobutong/p/18083946

相关文章

  • R语言DCC-GARCH模型对上证指数、印花税收入时间序列数据联动性预测可视化|附代码数据
    全文链接:http://tecdat.cn/?p=31630最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。普通的模型对于两个序列的波动分析一般是静态的,但是dcc-garch模型可以实现他们之间动态相关的波动分析,即序列间波动并非为一个常数,而是一个随着时间的变化而变化的系数。其......
  • Linux中的IO模型介绍
    一、IO是什么I/O(Input/Output),中文名为输入/输出,指的是一切操作程序或设备与计算机之间发生的数据传输的过程。它分为IO设备和IO接口两个部分。IO设备,就是指可以与计算机进行数据传输的硬件。最常见的I/O设备有打印机、硬盘、键盘和鼠标。从严格意义上来讲,它们中有一些只能算......
  • R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
    全文链接:https://tecdat.cn/?p=35426原文出处:拓端数据部落公众号本文利用R语言,通过逐步逻辑回归模型帮助客户分析两个实际案例:麻醉剂用量对手术病人移动的影响以及汽车购买行为预测。通过构建模型并解释结果,我们探究了各自变量对因变量的影响程度。同时,借助ROC曲线可视化分析,评......
  • MATLAB用GARCH-EVT-Copula模型VaR预测分析股票投资组合
    全文链接:http://tecdat.cn/?p=30426原文出处:拓端数据部落公众号对VaR计算方法的改进,以更好的度量开放式基金的风险。本文把基金所持股票看成是一个投资组合,引入Copula来描述多只股票间的非线性相关性,构建多元GARCH-EVT-Copula模型来度量开放式基金的风险,并与其他VaR估计方法的预......
  • 输入8个整数放入一维数组w中,输出交换前的数组,找出其中的最大数和最小数并将他们分别与
    #include<stdio.h>intmain(){intw[8];inti,maxIndex=0,minIndex=0,temp;//用户输入8个整数printf("请输入8个整数:");for(i=0;i<8;i++){scanf("%d",&w[i]);}//假设第一个元素为最大和最小值......
  • 【MMD x EEVEE教程】材质篇 • 修复模型异常光斑
     某些时候,由于模型权重没刷好,或者某个帧动作幅度过大,导致模型部分撕裂,渲染的时候会变成下边的样子 关闭辉光后 按下下边的顺序添加修改器即可,实体化修改器厚度设置为0,偏移量0,填充取消打勾,第一个修改器不用管,默认导入abc生成的修改器 一般情况,加个焊接和加权法向......
  • 【MMD x EEVEE教程】材质篇 • 修复模型面部变暗
    修复前 修复后 材质节点 法向节点中的球,越往上滑动,嘴唇附近的法线越接近平面化后的法线,如果要把节点用到abc格式模型上,需要烘焙面部遮罩贴图  工程链接:https://wwi.lanzoup.com/i0IZQ1s9ie4f需要blender3.1.2 ......
  • VPCFormer:一个基于transformer的多视角指静脉识别模型和一个新基准
    文章目录VPCFormer:一个基于transformer的多视角指静脉识别模型和一个新基准总结摘要介绍相关工作单视角指静脉识别多视角指静脉识别Transformer数据库基本信息方法总体结构静脉掩膜生成VPC编码器视角内相关性的提取视角间相关关系提取输出融合IFFN近邻感知模块(NPM)p......
  • Macbook air M2 16G 用cpu跑同大模型知识库文档系统(Langchain-chatchat+llama2-7B量化
    MacbookairM216G用cpu跑同大模型知识库文档系统(Langchain-chatchat+llama2-7B量化模型)经过了5个夜晚的煎熬,终于从一个完全不知大模型为何物的小白身份把知识库问答大模型搞起来,一路尝试几斤辛酸,特别记录下来踩过的各种坑,供大家借鉴!本人的目标:在我自己的Macbookair......
  • 如何理解OSI七层模型?
     一、是什么OSI(OpenSystemInterconnect)模型全称为开放式通信系统互连参考模型,是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架OSI将计算机网络体系结构划分为七层,每一层实现各自的功能和协议,并完成与相邻层的接口通信。即每一层扮......