Struts2对EL表达式的改变
EL表达式回顾
EL 表达式的写法:${表达式}。
它是从四大域中,由小到大逐个域搜索,根据名称获取值。只要找到了,就不再继续搜索。
它的原理:使用的是PageContext类中的findValue方法
Struts2对 EL表达式的改变
Struts2 框架中对EL 表达式做了如下改变:
-
EL表达式原来的搜素顺序:
- page Scope
- request Scope
- session Scope
- application Scope
-
EL表达式改变后的搜索顺序:
- page Scope
- request Scope
- valueStack
- contextMap
- sessionScope
- application Scope
它是如何做到的呢?
答案就是,struts2 框架对request 对象进行了包装,并且对 getAttribute 方法进
行了增强,代码如下