在Spring表达式语言(SpEL)中,每个文本关系运算符都有一个符号等价物。例如,eq
可以写为==
,lt
可以写为<
(来源here)。
然而,逻辑运算符没有符号等价 - 至少就我所知。我必须使用and
和or
,&
和|
的预期符号不存在(由于某种原因not
不同,它有等同于!
。
是否有&
和|
可用,或者是否可以扩展Spring以支持它们?
答案 0 :(得分:1)
您必须查看方法org.springframework.expression.spel.standard.Tokenizer
中的process()
,您将在其中实现|,&amp;,||和&amp;&amp;不受支持。添加它需要子类化Tokenizer并且还要子类化org.springframework.expression.spel.standard.InternalSpelExpressionParser
,因为在它的.doParseExpression()方法中,Tokenizer直接实例化了...... Spring 3.1版本的源代码由我采用。