ValueStack 工作原理
来源:互联网 发布:微商城cms 编辑:程序博客网 时间:2024/06/16 13:27
今天在为同事解决问题的时候,发现了自己以前对valuestack的理解有点偏差,通过问题的解决,也体验了一把温故而知新
废话少说,步入正题
当访问一个action的时候,此时struts2会把整个action压入valuestack的顶部,此时valuestack就一个action对象
我们通常会写stack.set(key1,value1) 或者statck.setvalue(key2,value2) 这两个是有区别的,前者会在valuestack压入一个hashmap,并将key1,value1植入该hashmap 那么此时valuestack会有两个对象,顶部是hashmap,底部是action 后者 会 将key2,value2直接植入到顶部的对象,通常是action,如果action没有相应的set方法,那么执行这个方法等于白搭,你如果此时执行valuestack.findvalue就会为空
我们通常会在多个拦截器传递数据,正如前面所说,你必须得再action中写入set方法,否则无效,如果你不想写,那么请用valuestack.set,这样就不用改写action. 但又存在一个隐患,如果拦截器1中你写了valuestack.set,然后你在拦截器2中同findvalue获取了该值,这没有问题,假设你突然想在拦截器2中传一个值给action ,问题就暴露了,你会在拦截器2中像平常一样写statck.setvalue,然后在action 中加上 set,满以为可以传递过去,其实不行,因为此时栈顶是一个map,而非action,你此时是将值植入到map,而非action,所以传值失败。
valuestack作为拦截器、action,甚至页面传递数据的一个数据结构,特别是当栈中存在多个对象的时候,必须注意栈中对象的顺序以免产生一些恼人的问题。
- valuestack的工作原理
- valuestack的工作原理
- ValueStack 工作原理
- valuestack的工作原理
- Struts2的ValueStack工作原理
- 【转】Struts2 中ValueStack原理
- valuestack
- ValueStack
- ValueStack
- ValueStack
- ValueStack
- ValueStack
- 值栈ValueStack的原理和生命周期
- Struts2的ValueStack(值栈)的原理
- 值栈ValueStack的原理与生命周期?
- 值栈ValueStack的原理和生命周期
- ValueStack和OGNL实现Struts2表单数据的存储原理
- struts.valueStack (Action 中属性存放的原理)
- Android 文件的下载
- 黑马程序员——进制转换
- 【编程相关】作为软件工程师,你必须知道的20个常识
- javascript url 参数
- 江苏985+211高校专业全国排名详情
- ValueStack 工作原理
- jquery操作select option
- UVaOJ 10557 - XYZZY
- android apk在线升级
- 日本女孩人体彩绘艺术 逼真震撼创意佳
- android 服务器端推送
- 构造哈希函数的方法
- jsp (web)定时器,Java定时器在Web中的应用
- sublime配置全攻略