一、ognl表达式与Struts2框架结合原理
在Struts2中Ognl就是值栈ValueStack。ValueStack包括Root栈与ActionContext(Context)两部分。
其中Root栈中存放的是Action。
二、ognl表达式与Struts2框架结合体现-参数赋值
值得注意的是在模型驱动中,将接受参数的对象压入栈顶需要在赋值前。赋值前指的是在params拦截器之前。而ModelDriven拦截器是在param拦截器之前,故可以实现将对象压入栈顶的功能。这就是模型驱动的原理。
request.getAttribute()查找值的顺序:
1、原生request域;
2、查找ValueStack的栈(Root)部分
3、查找ValueStack的Context(ActionContext)部分