OGNL表达式语言1

GNL有一个上下文概念,说白了上下文就是一个MAP结构,他实现了java.Uits.Map接口,在Struts2上下文的实现为ActionContext。

Struts2中的OGNL Context实现着为ActionContext:

当Struts2接受一个请求时,会创建ActionContext,ValueStack,action。然后把action存放进ValueStack,所以action的实例变量可以被OGNL访问。

 

         在root变量中处于第一位的对象叫做栈对象,通常我们在OGNL表达式里直接写上属性的名称即可访问root变量里对象的属性,搜索顺序从栈顶对象开始寻找,如果站定对象不存在该属性,就会从第二个对象寻找,如过没有找到就从第三个对象寻找,依次往下访问,直到找到为止。

         大家注意:struts2中,OGNL表达式需要配合Struts标签才可以使用。如<s:property value=”name”/>

         由于ValueStack(值栈)是Struts2中OGNL的根对象,如果用户需要访问值栈中的对象,JSP页面可以直接通过下面的EL表达式访问ValueStack(值栈)中对象的属性:

         $(foo)//获取值栈某个对象的foo属性

         如果访问其他Context中的对象,由于他们不是根对象,所以在访问时,需要添加#前缀。

         Application对象:用于访问ServletContext,例如#application.userName或者#application[‘userName’],相当于调用ServletContext的getAttibute(“usernmae”)。

         Session对象:用来访问HttpSession,例如#session.ueserName或者#session[‘userName’],相当于调用session.getAttribute(“userName”);

         Requsert对象:用来访问HttpServletRequset属性(attibute)的Map,例如#requset.userName或者#requset[‘userName’],相当于调用request.getParameter

(“username”).

         Parpameters对象:用于访问HTTP的请求参数,例如#Parameters.userName或者#parameters[‘userName’],相当于调用requset. getParameter(“username”).

         Attr对象:用于按page->request->session->applicaton顺序访问其属性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值