b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ognl表达式和el表达式_ognl表达式_ognl表达式 if(2)

电脑杂谈  发布时间:2017-02-15 21:00:02  来源:网络整理

上图为OGNL Context的当struts2接受一个请求时,会迅速创建ActionContext,ValueStack,action。然后把action压入到栈中。所以action的实例变量可以被ognl访问。所以利用ognl表达式可以访问action。ActionContext

从上面的代码中可以看出来,struts2中的ActionContext的作用是提供了对ognl数

据的操作。并且可以通过ActionContext获取到经过struts2封装了的session等参数。

ServletActionContext

可以通过ServletActionContext得到servlet中的一些类,比如HttpServletRequest,ServletContext等可以通过ServletActionContext返回ActionContextOgnl表达式

1.#号用法

访问OGNL上下文和action上下文,#相当于ActionContext.getContext();如果访问的是map中的而不是对象栈中的,由于map中的数据不是根对象,所以在访问时需要添加#前缀。

名称

作用

例子

parameters

包含当前HTTP请求的Map

#parameters.id[0]=request.getParameter(“id”)

request

包含当前HttpServletRequest属性的Map

#request.username=request.getAttribute(“username”);

session

包含当前HttpSession属性的Map

#session.username=session.getAttribute(“username”);

application

包含当前ServletContext属性的Map

#application.username=application.getAttribute(“username”);

attr

用于按照request>session>application顺序访问其属性

#attr.username相当于按照顺序在以上三个范围内读取username的属性,直到找到为止。

注:也可以写为#request[‘username’] #sesssion[‘username’] #application[‘username’]

主要步骤:

在action中

在页面中

2.用法2

OGNL会设定一个对象(root对象),在struts2中根对象就是CompoundRoot,或者为OgnlValueStack中的root,通常被叫做ValueStack(栈或者对象栈),如果要访问根对象的属性,则可以省略去#,直接访问对象的属性即可。ognl表达式

在action中

在页面中

3.用法3(深入理解对象栈)

有三个类:Person.java,Student.java,OgnlAction.java

Person类Student类OgnlAction类把Person类和Student类创建出对象,然后放入到对象栈中,代码为:

从以前学过的OGNLContext结构可以看出,对象栈中的分布如图所示:

但是大家注意一个现象:在student对象中有comment属性,在person对象中

也有comment属性,在OgnlAction中还有comment属性,如果页面输出

Comment属性应该选择哪种呢?


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32635-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...