Spring EL - “表达式中还有更多数据”

时间:2015-12-16 16:30:45

标签: spring spring-el

是否可以解析如下所示的表达式,我调用一个方法,并希望在该方法调用的结果之后有文本?

String expression = "obj.someMethod()'test'";
ExpressionParser parser = new SpelExpressionParser(); 
Expression expression = parser.parseExpression(expression);

当我运行如下代码时,我收到以下错误:

org.springframework.expression.spel.SpelParseException: EL1041E:(pos 23): After parsing a valid expression, there is still more data in the expression: 'test'

如果我删除了'test'字符串,那么它会解析并正确评估。

1 个答案:

答案 0 :(得分:1)

即使它是表达式语言,它也基于核心编程语言并遵循其规则。

因此,如果使用+运算符将方法结果与Java中的字符串连接起来,则应在SpEL中执行相同的操作:

"obj.someMethod() + 'test'"

是你的正确答案。

您可以使用:

"obj.someMethod().concat('test')"

someMethod()返回String时,