Struts2 ValueStack 值栈 总结 详解! Myself

1. web请求处理过程:url请求--->action 等整个过程,所有的中间数据和请求参数等等都放在了ValueStack中,

     好处是action组件和拦截器等可随时访问ValueStack存取Data,避免了大量数据来回传输带来的对象封装等麻烦。


2.ValueStack分为ObjectStack与 StackContext两部分, ObjectStack存action组件以及属性对象等,StackContext存放web运行环境信息,如应用上下文、会话和响应等

    ognl可直接取ObjectStack中数据,而OGNL默认跟对象为ObjectStack,所以取StackContext中data要前面标注“#”!


3.<s: property value="usrname"/>直接能取出原因: 一个是action对象位于ValueStack 栈顶,另一个是 ValueStack 取值的定位方式是按索引来找的(一个对象如果没有usrname,则去下一个对象找),所以最后不用[0].usrname直接用usrname即可。


4.OGNL就是为了方便存取ValueStack中的数据而设计,非常灵活,结合struts2标签来使用。

   OGNL可将GUI元素与Action属性绑定起来,自动实现类型转换。OGNL以ValueStack中的Object为默认跟目录,若要访问Stack Context中data,就要在表达式前面加上#标记

   ps:带{xxx}的还是属于JSTL的EL表达式!!

  <s: property value="#request.password"/>   中#request.password是OGNL表达式!

EL表达式:{requestScope.password}


5.# ====就是代表要去StackContext取data去!!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值