valuestack的工作原理
来源:互联网 发布:商家请淘宝介入退款 编辑:程序博客网 时间:2024/05/23 14:12
今天在为同事解决问题的时候,发现了自己以前对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的工作原理
- Struts2的ValueStack工作原理
- ValueStack 工作原理
- Struts2的ValueStack(值栈)的原理
- 值栈ValueStack的原理和生命周期
- 值栈ValueStack的原理与生命周期?
- 值栈ValueStack的原理和生命周期
- ValueStack和OGNL实现Struts2表单数据的存储原理
- struts.valueStack (Action 中属性存放的原理)
- 【转】Struts2 中ValueStack原理
- ValueStack的使用
- 防火墙的工作原理
- 网上邻居的工作原理
- 路由器的工作原理
- DHCP的工作原理
- JDBC的工作原理
- Python 日期和时间
- 三极管的电平转换及驱动电路分析
- LeetCode-Binary Tree Level Order Traversal II
- Validate Binary Search Tree
- 对功率谱的一点理解
- valuestack的工作原理
- C#中的json格式字符串解析
- 数组的指针特性
- RTF转纯文本
- wget: command not found的两种解决方案
- ManualResetEvent
- DSP-BIOS使用入门
- UISwipeGestureRecognizerDirection手势上下左右方法
- 构造函数、拷贝构造函数