struts2 理解ActionContext对象和OGNL

OGNL(对象图导航语言),是struts2专用的标记语言
一、作用:
(1)获取ActionContext中的数据 (2)集合操作,即访问List、Map
二、理解ActionContext对象:
(1)ActionContext对象是struts2的数据中心,在一次符合/*的请求到来时,框架负责创建,放置在request域对象中。
(2)ActionContext可分为以下几个子对象:

这里写图片描述

(3)ActionContext有个非常重要的和特殊的对象,叫值栈(ValueStack),它是action的数据中心,在一次/*请求来临时,框架负责创建,放置在request域对象中。
三、值栈
分为两部分:
(1)对象栈(list集合)
action的实例
action的属性
(2)Map栈(map集合)
通过valueStack的api操作的对象,即valueStack.set…

这里写图片描述

*在struts2中,不提倡使用request来存内容,而使用ValueStack来替换requset对象。
四、OGNL几种符合用法
(1) #
A:访问ActionContext对象
B:访问集合Map:#{“male”:”男”,”female”:”女”}
C:访问List集合:
a)集合的投影:
userList.{username} (可取出List里面JavaBean的username属性)。
b)集合的过滤:
userList.{?#this.age>22}
userList.{^#this.age>22}
userList.{$#this.age>22}.{?#this.gender==”男”} (age>22 and gender==’男’)
?#表示所有对象
^#表示第一个对象
$#表示最后一个对象
this表示当前迭代的这个对象
c)集合的投影和过滤:
userList.{?#this.age>22}[0]
[0]表示符合条件的第一个对象
[1]表示符合条件的第二个对象

什么情况下使用#:
*非值栈
*获取JavaBean属性值

(2) %{}
在标志的属性为字符串类型时使用。比如:
(3) ${}(不是EL)
访xml 可 以 访 问 x m l 本 身 的 数 据 。 {}也可以访问Action实例变量,前提Action一定要对该实例变量提供getXxx()方法。
(4)访问集合List或{}
value=’{“AA”,”BB”,”CC”,”DD”}’

        欢迎扫码关注微信公众号:擒贼先情王(qingshang733)

这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值