Spring SpEL逻辑运算符

时间:2011-03-27 11:06:25

标签: spring spring-el

在Spring表达式语言(SpEL)中,每个文本关系运算符都有一个符号等价物。例如,eq可以写为==lt可以写为<(来源here)。

然而,逻辑运算符没有符号等价 - 至少就我所知。我必须使用andor&|的预期符号不存在(由于某种原因not不同,它有等同于!

是否有&|可用,或者是否可以扩展Spring以支持它们?

1 个答案:

答案 0 :(得分:1)

您必须查看方法org.springframework.expression.spel.standard.Tokenizer中的process(),您将在其中实现|,&amp;,||和&amp;&amp;不受支持。添加它需要子类化Tokenizer并且还要子类化org.springframework.expression.spel.standard.InternalSpelExpressionParser,因为在它的.doParseExpression()方法中,Tokenizer直接实例化了...... Spring 3.1版本的源代码由我采用。