博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对Session.getAttribute(),Request.setAttribute()和ModelMap.addAttribute()用法的理解
阅读量:5778 次
发布时间:2019-06-18

本文共 1586 字,大约阅读时间需要 5 分钟。

hot3.png

1.ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:  addAttribute(String key,Object value);  说白了就是ModelMap、Model、ModelAndView用于在控制器中放置数据到request中,以便转发给视图jsp好通过request.getAttribute取得。  

2.ModelMap的实例是由mvc框架自动创建并作为控制器方法参数传入,用户无需自己创建。ModelAndView的实例是由用户手动创建的,这也是和ModelMap的一个区别。  说白了就是ModelMap需要在参数中声明由springmvc传入,视图名通过return 返回,ModelAndView需要在方法体中自己new,new的同时构造函数参数要指定视图名。添加数据这两个用法是一样的。model和modelmap会自动转成modeladnview。  

3.public String test1(@ModelAttribute("user") UserModel user)。如请求参数包含“?username=zhangsan&password=123456&workInfo.city=wh”自动绑定到user 中的workInfo属性的city属性中  说白了如果不加@ModelAttribute修饰参数,那么只是简单的自动将请求的数据按属性名绑定到user对象里,加了的话就可以在绑定参数数据的同时自动以user属性名添加到model里。更省事了。要不然还得手动写上 model.addAttribute("user",user); 当然还有可能先对user进行进一步的数据加工后再addAttribute("user") 。   

4.session.setAttribute()和session.getAttribute()配对使用,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用。request.setAttribute()和request.getAttribute()配对使用,作用域是请求和被请求页面之间。

5.@SessionAttributes  作用于Controller类,让Controller所有方法共享Model对象中一个或多个属性  再解释明白一点:就是原来model中有一个属性testId,现在在Controller上添加注解@SessionAttributes(“testId”),则所有方法都可以通过model获取该testId属性值。

 

关于session,request,modelMap取值顺序:

Model model,HttpServletRequest request, ModelMap map声明变量 request.getSession().setAttribute("test", "haiwei2Session");

request.setAttribute("test", "haiwei1request");  

map.addAttribute("test", "haiweiModelMap");

model.addAttribute("test", "haiweiModel");  

我通过${test}这个方式取值,优先取Model和ModelMap的,Model和ModelMap是同一个东西,谁最后赋值的就取谁的,然后是request,最后是从session中获取。

转载于:https://my.oschina.net/u/3855568/blog/1814051

你可能感兴趣的文章
exgcd、二元一次不定方程学习笔记
查看>>
经典sql
查看>>
CSS3边框会动的信封
查看>>
JavaWeb实例设计思路(订单管理系统)
查看>>
source insight中的快捷键总结
查看>>
PC-IIS因为端口问题报错的解决方法
查看>>
java四种线程池简介,使用
查看>>
一般处理程序(.ashx)中session的使用方法
查看>>
EasyUI笔记(二)Layout布局
查看>>
ios View之间的切换 屏幕旋转
查看>>
typedef BOOL(WINAPI *MYFUNC) (HWND,COLORREF,BYTE,DWORD);语句的理解
查看>>
jsp 特殊标签
查看>>
[BZOJ] 1012 [JSOI2008]最大数maxnumber
查看>>
使用VMware安装CentOS
查看>>
gauss消元
查看>>
多线程-ReentrantLock
查看>>
数据结构之链表与哈希表
查看>>
IIS7/8下提示 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求...
查看>>
http返回状态码含义
查看>>
响应式网站对百度友好关键
查看>>