返回上一页

语法元素

基本元素

项目 描述
注释 指定使用##//并延伸到行尾,例如
##这是一个评论
也使用//指定,例如
//这是一个评论
使用/*...*/指定多行注释,例如
/* 这是一个
                            多行评论* /
标识符/变量 必须以azAZ_$开头。然后可以跟着0-9azAZ_$。例如
  • 有效:var1_a99$1

  • 无效:9V!A991$

变量名称区分大小写,例如var1Var1是不同的变量。

注意:不支持带有连字符的变量,例如

commons-logging //无效变量名(连字符)
不是有效的变量,而是被视为从变量commons中减去变量日志记录

JEXL还支持ant风格的变量,下面是一个有效的变量名:

my.dotted.var

注意以下关键字被保留,并且在使用点运算符时不能用作变量名称或属性:或者当前值不为空truetruefalsenewfalsereturn例如,以下是无效的:

my.new.dotted.var // invalid('new'is keyword)
在这种情况下,可以使用引用的标识符或[]运算符,例如:
my.'new'.dotted.var
我的[“新”。dotted.var
脚本

脚本由零个或多个语句组成。脚本可以从字符串,文件或URL读取。

它们可以使用命名参数创建,允许使用参数执行后续的评估。

脚本返回默认情况下评估的最后一个表达式。

使用return关键字,脚本将返回后面的表达式(或null)。

局部变量 可以使用var关键字定义;他们的识别规则与上下文变量相同。
  • 基本声明:varx;

  • 具有赋值的声明:vartheAnswer=42;

  • 声明无效:varxy;

它们的范围是整个脚本范围,它们在对上下文变量的解析中优先。当使用命名参数创建脚本时,它们表现为局部变量。局部变量不能使用蚂蚁样式命名,只能使用一个标识符。
声明 一个语句可以是空语句,分号(;),块,赋值或表达式。可以使用分号来终止语句。
一个块只是花括号({,})中的多个语句。
分配 使用JexlContext作为初始解析器分配变量(my.var=''''''''''''''''''''''''''''''''avalue''''''''''''''''''''''''''''''''的值。支持beanant-ish变量赋值。
方法调用 调用对象的方法,例如
“你好世界”.hashCode()
将调用“helloworld”String的hashCode方法。

在多个参数和超载的情况下,JEXL将尽最大努力寻找最适合的非歧义方法来调用。