valuestack 和 actioncontext 是什么关系
1个回答
展开全部
ValueStack实际上就是一个容器。它由Struts框架创建,当前端页面如jsp发送一个请求时,Struts的默认拦截器会将请求中的数据进行封装,并入ValueStack的栈顶。
中文名
值栈空间
外文名
ValueStack
Struts2在启动时,会创建一个ValueStack对象 当用户发送请求到对应的Action时,Struts2会把当前被请求的Action01放入CompoundRoot 对象的“栈空间”栈顶,请求结束,Action01会被清除。 (当下一次另一个请求到来时,Struts2会把该请求对应的Action02放入“栈顶”) 所以,我们可以通过Ognl表达式访问CompoundRoot对象栈顶的Action。
Struts2在请求到来时,首先会创建一个ValueStack; 然后,把当前的Action对象放入栈顶(CompoundRoot); Struts2会把ValueStack存放在request中,属性为”struts.valueStack“, 所以,标记库可以访问到ValueStack Struts2的很多标记就是通过访问ValueStack获得数据的:
通过ognl从ValueStack取数据,并且显示
<s:property value="ognl..."/>
省略value,取出ValueStack的栈顶
<s:property />
通过ognl从ValueStack取出集合,依次将集合中的对象置于栈顶,在循环中,ValueStack栈顶即为要显示的数据
中文名
值栈空间
外文名
ValueStack
Struts2在启动时,会创建一个ValueStack对象 当用户发送请求到对应的Action时,Struts2会把当前被请求的Action01放入CompoundRoot 对象的“栈空间”栈顶,请求结束,Action01会被清除。 (当下一次另一个请求到来时,Struts2会把该请求对应的Action02放入“栈顶”) 所以,我们可以通过Ognl表达式访问CompoundRoot对象栈顶的Action。
Struts2在请求到来时,首先会创建一个ValueStack; 然后,把当前的Action对象放入栈顶(CompoundRoot); Struts2会把ValueStack存放在request中,属性为”struts.valueStack“, 所以,标记库可以访问到ValueStack Struts2的很多标记就是通过访问ValueStack获得数据的:
通过ognl从ValueStack取数据,并且显示
<s:property value="ognl..."/>
省略value,取出ValueStack的栈顶
<s:property />
通过ognl从ValueStack取出集合,依次将集合中的对象置于栈顶,在循环中,ValueStack栈顶即为要显示的数据
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询