关于valueStack

chenshuang1227 2008-11-04
问各位一个问题:valueStack是session级别的吗?
比如说:提交一个请求到后台的bean中,这个时候,这个bean是存储在valueStack中的。如果按照servlet理论的话,是存储在session中吗?
hilliate 2008-11-23
好像不是session级的吧,应该生命周期是容器级的,否则从后台处理的bean中怎么还能压入到valuestack中呢?
zhazha1984 2008-11-27
我觉得应该是提交一次请求,然后建立ValueStack,ActionContext,action这些,请求处理完毕以后就释放了~
chenshuang1227 2008-11-27
zhazha1984 写道
我觉得应该是提交一次请求,然后建立ValueStack,ActionContext,action这些,请求处理完毕以后就释放了~


但是我清楚地看到请求之后竟然还没释放,还能用ValueStack的值。
zhazha1984 2008-11-27
chenshuang1227 写道
zhazha1984 写道
我觉得应该是提交一次请求,然后建立ValueStack,ActionContext,action这些,请求处理完毕以后就释放了~


但是我清楚地看到请求之后竟然还没释放,还能用ValueStack的值。

请求之后,还要暴露给视图吧,然后还在不在呢?
chenshuang1227 2008-11-27
zhazha1984 写道
chenshuang1227 写道
zhazha1984 写道
我觉得应该是提交一次请求,然后建立ValueStack,ActionContext,action这些,请求处理完毕以后就释放了~


但是我清楚地看到请求之后竟然还没释放,还能用ValueStack的值。

请求之后,还要暴露给视图吧,然后还在不在呢?

整个生命周期一直存在,我也很纳闷。
kyo100900 2008-12-19
我来说说我的看法,大家一起讨论讨论。

假设你家有很多电脑,比如:

笔记本(相当于request作用域)
台式机(相当于session作用域)
服务器(相当于application作用域)
.....(其它类似)

现在你的一个好朋友想用你的电脑看电影(从以上作用域中取数据),因为你们之间关系太熟了,他完全能分清哪些电影在哪些电脑上,因此,他可以这么取记录(注意,直接使用其它作用域要加上#)

<ww:property value="#session.mySessionPropKey"/> 
<ww:property value="#request['myRequestPropKey']"/> 
<ww:property value="#application.myApplicationPropKey"/>



但是一个新朋友如果也想看电影那就难办了,他就得不停的挨台机器的找啊,找啊。因此,这个ValueStack就相当于做这个工作。它持有所有作用域的引用,因为它可以通过栈的特性不断的查找,出栈,再查找,直到找到或栈为空为止。


<ww:property value="mPropKey"/> 


上面的代码对于程序员来说,并不用关心数据所在的作用域,它会依次在各个作用域中查找的。






h_yz 2008-12-19
谢谢kyo100900 姐姐,俺也学习了
kyo100900 2008-12-19
啊~~~~~~~~~~~~~~~~   
我不是女的。
wenxiang_tune 2009-05-13
恩,valueStack不关心作用域,自动按一个顺序挨个查找对应属性!
Global site tag (gtag.js) - Google Analytics