您的位置:首页 > 编程语言 > Java开发

Struts2 ValueStack 值栈 总结 详解! Myself

2012-11-28 15:34 176 查看
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去!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: