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}” />

 

posted @ 2013-03-23 23:24  -1  阅读(776)  评论(0编辑  收藏  举报