Struts2-OGNL与Struts2的结合

OGNL与Struts2的结合

1、二者结合原理

ValueStack中的两部分:

CompoundRoot root;
transient Map<String,Object> context;

2、栈原理


2.1 栈是由ArrayList模拟!

2.2 栈中的两个方法的实现:

public Object pop(){
    return remove(0);
}
public void push(Object o){
    add(0,o);
} 
2.3 访问栈中属性的特点--由上到下



3、值栈中两部分内容(使用DEBUG标签)

3.1 Root:默认情况下,栈中放置当前访问的Action对象


3.2 Context:Context部分就是ActionContext数据中心

ActionContext 数据中心
        |-request
        |-response
        |-ServletContext
        |-requestScope
        |-sessionScope
        |-applicationScope
        |-params
        |-attrs
        ....

     


4、struts2与ognl结合体现

4.1 参数接收




值栈对象与ActionContext对象是互相引用的

public void prepare() throws Exception {
	//压入栈顶
	//1获得值栈
        ValueStack vs = ActionContext.getContext().getValueStack();
	//2将u压入栈顶
	vs.push(u);
}

Struts.xml 配置文件中 -- 语法:${ognl表达式}

<action name="Demo3Action" class="cn.itheima.d_config.Demo3Action" method="execute" >
    <result name="success" type="redirectAction" >
	<param name="actionName">Demo1Action</param>
	<param name="namespace">/</param>
	<!-- 如果添加的参数struts"看不懂".就会作为参数附加重定向的路径之后.
		如果参数是动态的.可以使用${}包裹ognl表达式.动态取值
	-->
	<param name="name">${name}</param>
    </result>
</action>

5、扩展:request对象的getAttribute方法

查找顺序:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值