ognl表达式的一点小心得

 OGNL是Object-Graph NavigationLanguage的缩写,它是一种功能强大的表达式语言(ExpressionLanguage,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。(百度百科来的--)

关于ognl的表达式,我们主要使用在struts2的一些使标签调用上,那么一般来说有三种情况:

1、直接通过“名字.属性”来使用,如“person.username”,因为ongl是从值栈(ValueStack)里把值拿出来,而struts2里值栈的根元素是Action,当我们使用这种方式的时候就是说person是放在Action里的,所以可以直接使用“名字.属性”把它拿出来。

2、通过“#名字.属性”来使用,如“#request.person.username”,当我们需要取出来的例不是放在值栈的根元素里的时候,就要使用“#”来指定是哪一个对象的属性。

3、通过“%{#名字.属性}”的方式来调用,如“helloWorld.action?id=%{#person.id}”,这是当表达式与字符串一起时,处理类无法识别是否为ognl表达式时,通过“%{}”表告诉处理类这是ognl表电灯达式,当然如果处理类可以识别表达式时你加上了“%{}”也没有关系,处理类会自动忽略掉“%{}”,所以在不确定表达式是否可以被识别时,可以加上“%{}”避免错误!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值