OGNL表达式语言学习

 

ognl object-graph navigation language
ognl表达式
a)可以取值栈中action的普通属性
        例如 <s:property value="username" />  这个表达式就能取出值栈中的username的值
b)可以去值栈中对象的普通属性值
        例如
        1、 <s:property value="user.age" />   user 为一个对象user.age  中的user对象,只有前台向后台传值,才会构造,不过也可以自己手动new ,不过要有无参数的构造                函数
        2、<s:property value="username.length" />   username是string型的,有length方法,所以可以这么写
c)可以访问action的普通方法
        例如:<s:property value="m()" />   而max是action中的一个普通方法,这里显示的值即为m()方法的返回值
d)可以访问静态方法
        例如:<s:property value="@com.bjsxt.struts2.ognl.S@s()" />   而max是action中的一个普通方法,这里显示的值即为max()方法的返回值
e)可以访问静态属性
        例如:
        1、<s:property value="@com.bjsxt.struts2.ognl.S@STR" />   而max是action中的一个普通方法,这里显示的值即为max()方法的返回值
        2、<s:property value="@@max(2,3)" />   用两个@表示在math 这个类,且仅仅是这一个类里面的math方法
f)访问list
        例如:
        1、<s:property value="users" />  得到users这个list 里面所有的值
        2、 访问list中的某个元素
            <s:property value="users[1]" /> 得到users这个list中第二个值
        3、访问某个元素某个属性的集合
            <s:property value="user.{age}" /> 得到users这个list中所有age的值集合
        4、访问list中元素的某个属性集合中的特定值
          <s:property value="user.{age}[0]" />  或者<s:property value="user[0].age" />  取得users这个list中所有age集合中第一个值
g)访问map
         1、<s:property value="dogMap" />  得到整个dog这个map
         2. 访问map里面某个元素
            <s:property value="dogMap.dog101" />  得到整个dog这个map
         3.访问map里面所有的keys
                <s:property value="dogMap.keys"/>
             4.访问map里面所有的values
                <s:property value="dogMap.values"/>
             5.访问容器大小
                <s:property value="dogMap.size()"/>

     h)投影
             投影(过滤):
            <s:property value="users.{?#this.age==1}[0]"  ?# 为过滤条件写法  this.age为迭代,集合的每个元素进行迭代,取出age=1的所有元素
            <s:property value="users.{^#this.age==1}[0]"  ?# 为过滤条件写法  this.age为迭代,集合的每个元素进行迭代,取出age=1的所有元素中的第一个
            <s:property value="users.{$#this.age==1}[0]"  ?# 为过滤条件写法  this.age为迭代,集合的每个元素进行迭代,取出age=1的所有元素中的最后一个
    i)[]取值
            <s:property value="[0].dogMap.dog101"/> [0] 表示在堆栈里面所有的action

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值