1. $对el表达式的改变
$是EL表达式的标志,Struts2框架对el表达式增强了,使用此框架el表达式的搜索范围是:page request valueStack contextMap session application
2. $和#的取值方式
在Struts2的标签中<S:>,参数的获取使用ognl表达式,写#去contextMap中找,不写#号默认去值栈找,找不到以值为key再去contextMap中找。
3.contextMap说明
- contextMap是ognl上下文中最大的一个对象,是一个Map结构。
- ActionContext工具类为我们提供了获取上下文的方法
ActionContext.getContext(){return ActionContext};
ActionContext.getContext().getContextMap(){return Map<String,Object>};
- 二者的不同点是.getContextMap()会获取原始的ContextMap,而工具类为我们屏蔽掉了一些方法,防止使用的失误,
- 二者都是线程安全的(看源码,使用ThreadLocal)