SpringMVC控制器设值原理分析(ModelAndView的值通过HttpServletRequest直接取到的原因)
@RequestMapping("/userlist.do")
public String getUserList(Model model){ HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
model.addAttribute("userList", sysUserService.findAll()); return "user_list";
}
通常在编码时,只需要往model中addAttribute()值后,就可以在JSP中通过EL表表达式,或者JSTL标签直接取到值了:
常规的理解是,EL和JSTL只是取Request、Session等作用域中的数据的,那么SpringMVC何时将代码中的model中的“userList”集合数据转存到了request作用域中的呢?
DEBUG SpringMVC源码之DispatchServlet的1208行----->AbstractView第367行才明了:
SpringMVC控制器设值原理分析(ModelAndView的值通过HttpServletRequest直接取到的原因)的更多相关文章
- SpringMVC请求流程与原理分析
SpringMVC的工作原理图: SpringMVC流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherServlet收到请求调用HandlerMa ...
- SpringMVC - 运行流程图及原理分析
流程示意图: 代码分析图:
- 阶段3 3.SpringMVC·_05.文件上传_3 文件上传之Springmvc方式上传原理分析
需要配置文件解析器这个对象 id配置时候必须叫做mutipartResolver 最终
- flink-----实时项目---day07-----1.Flink的checkpoint原理分析 2. 自定义两阶段提交sink(MySQL) 3 将数据写入Hbase(使用幂等性结合at least Once实现精确一次性语义) 4 ProtoBuf
1.Flink中exactly once实现原理分析 生产者从kafka拉取数据以及消费者往kafka写数据都需要保证exactly once.目前flink中支持exactly once的sourc ...
- SpringMvc框架MockMvc单元测试注解及其原理分析
来源:https://www.yoodb.com/ 首先简单介绍一下Spring,它是一个轻量级开源框架,简单的来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开 ...
- SpringMVC源码分析6:SpringMVC的视图解析原理
title: SpringMVC源码分析6:SpringMVC的视图解析原理 date: 2018-06-07 11:03:19 tags: - SpringMVC categories: - 后端 ...
- springMVC课程笔记(一)springMVC架构原理分析
一.springMVC架构原理分析 1.先搞清楚什么是springMVC: 其实springMVC是spring框架中的一个模块,springMVC和spring无需通过中间整合层整合,SpringM ...
- springMVC源码分析--ViewNameMethodReturnValueHandler返回值处理器(三)
之前两篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)和springMVC源码分析--HandlerMethodReturnValu ...
- springMVC源码分析--HandlerMethodReturnValueHandlerComposite返回值解析器集合(二)
在上一篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)我们介绍了返回值解析器HandlerMethodReturnValueHand ...
随机推荐
- codeforces 192 c
link: http://codeforces.com/contest/330/problem/C broute force but you must be careful about some tr ...
- Socket实现异步通信
private static void RecVing(IAsyncResult Result) { //通过 result 获取socket.在这个socket上你启动了BeginAccep ...
- java03实验截图
- HDU 2095 find your present (2)
HDU 2095 find your present (2) 解法一:使用set 利用set,由于只有一个为奇数次,对一个数进行查询,不在集合中则插入,在集合中则删除,最后剩下的就是结果 /* HDU ...
- U盘
U盘里的.Trashes是什么文件,要怎么去掉?为什么会出现这个文件? 这是苹果电脑的垃圾文件. 1.在苹果电脑上删除文件后,没有清空回收站,就会留下这些文件. 2.可以重新插入Mac, 然后会发现T ...
- linux 命令-全称
cal = CALendar calendar日历, 历法cat = CATenate 连接, 使连续cd = Change Directorychgrp = CHange GRouPchmod = ...
- poj1680 最短路判环
题意:有多个银行可以换钱,每个银行可以将特定的两种钱相互兑换,并且有自己的汇率,现在问是否可以将自己的钱通过银行兑换增加. 其实比较水,主要就是知道最短路问题里的负环可以通过bellman-fold或 ...
- Linux驱动设计——字符杂项设备
杂项设备 linux里面的misc杂项设备是主设备号为10的驱动设备,misc设备其实也就是特殊的字符设备,可自动生成设备节点. 定义头文件<linux/miscdevice.h> 杂 ...
- struts2获得request和session对象
在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在struts2中,request和session都被隐藏了 struts2提供两种方式访问ses ...
- unity, OnTriggerStay/OnTriggerStay2D not called every fixedUpdate frame
ref: http://answers.unity3d.com/questions/1268607/ontriggerstay2d-do-not-called-every-fixedupdate-un ...