ActionContext和Ognl
OGNL表达式可以解析任何对象集合,值栈只是其中之一,而且是默认值
ActionContext包含了所有范围的数据.每个ognl表达式解析时都需要一个根对象,确定在哪
个范围内取数据
ognl表达式选择根对象:#+key
#session['user']:表示在ActionContext中key为session的map集合里的user键对应的值。
也就是session域里的user键对应的值,即 Session.getAttribute(“user”)
默认情况下,ValueStack是根对象.(不加#号,默认是到ValuStack中去取数据,值栈中的数据只能用属性来取)
如:#valuestack[‘name’],可简化为:name
<s:property value=”%{#valuestack[‘name’]}”> ,
简化为:<s:property value=”name”/>
#表示命名对象(上下文环境),OGNL上下文就是ActionContext。
ActionContext里除了存储集合,还可以存储对象,取数据时要用#号来去
如,举例:
将对象存储到ActionContext中:
User user = new User() ;
ActionContext.getContext().put(“user_key”,user) ;
Jsp页面Ognl取数据:
<s:property value=”%{#user_key.name}” />