博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2--OGNL表达式概述
阅读量:2441 次
发布时间:2019-05-10

本文共 888 字,大约阅读时间需要 2 分钟。

OGNL

OGNL 的全称是**“Object-Graph Navigation Language”**,即对象图导航语言,它是一种功能强大的开源表达式语言。使用这种表达式语言可以通过某种表达式语法存取 Java 对象的任意属性,调用 Java 对象的方法,以及实现类型转换等。

OGNL 具有以下特点:

  • 支持对象方法调用。如 objName.methodName()。
  • 支持类静态方法调用和值访问,表达式的格式为 @[类全名(包括包路径)]@[方法名|值名]。如 @java.lang.String@format(‘fruit%s’,‘frt’)。
  • 支持赋值操作和表达式串联。如 price=100,discount=0.8,在方法 calculatePrice() 中进行乘法计算会返回 80。
  • 访问 OGNL 上下文(OGNL context)和 ActionContext。
  • 操作集合对象。

OGNL 的操作实际上是围绕 OGNL 结构的三个要素进行的,分别是表达式(expression)上下文对象(context)根对象(root)。这三个要素的具体说明如下。

1.表达式:

表达式是整个 OGNL 的核心,OGNL 会根据表达式到对象中取值。所有 OGNL 操作都是针对表达式解析后进行的,它表明了此次 OGNL 操作要“做什么”。实际上,表达式就是一个带有语法含义的字符串,这个字符串规定了操作的类型和操作的内容。

2.上下文对象:

上下文对象规定了 OGNL 操作“在哪里进行”。context 对象是一个 Map 类型的对象,在表达式中访问 context 中的对象,需要使用 # 号加对象名称,即“# 对象名称”的形式。例如要获取 context 对象中 user 对象的 username 值,可以如下书写:

#user.username

3.根对象:

根对象可以理解为 OGNL 的操作对象,OGNL 可以对根对象进行取值或写值等操作,表达式规定了“做什么”,而根对象则规定了“对谁操作”。实际上根对象所在的环境就是 OGNL 的上下文对象环境。

转载地址:http://basqb.baihongyu.com/

你可能感兴趣的文章
如何在Facebook Messenger中启用暗模式
查看>>
如何远程锁定或擦除iOS 5设备
查看>>
如何重命名您的AirPods
查看>>
powerpoint预览_如何添加,删除和重新排列PowerPoint幻灯片
查看>>
您的Mac正在High Sierra中跟踪您的位置,这就是原因(以及如何禁用它)
查看>>
在Windows 7下最大限度地发挥多显示器的魔力
查看>>
如何使Ubuntu中的Gnome面板完全透明
查看>>
电子修补程序入门:购物清单
查看>>
chrome插件 备份书签_如何在本地备份和还原您的Chrome书签
查看>>
在Firefox的“关于”页面上找到隐藏功能和复活节彩蛋
查看>>
word中将空格替换为_如何在Word 2010中将英寸更改为厘米
查看>>
如何在Google文档中创建连字符,连字符和Em连字符
查看>>
如何为Windows Home Server设置电子邮件通知
查看>>
spark fold_每日新闻摘要:三星Galaxy Fold将于9月发布
查看>>
gpt分区 添加vhd引导_如何在不进行重新分区的情况下双重引导Windows 7和8(使用VHD)...
查看>>
如何在iPhone上将GIF设置为动态壁纸
查看>>
如何使F8键在Windows 8中进入安全模式
查看>>
富文本中添加字体选项功能_如何将开发人员选项卡添加到Microsoft Office功能区...
查看>>
如何将音乐添加到PowerPoint演示文稿
查看>>
mozilla.pdf_Mozilla说它没有从Booking.com赚钱
查看>>