是否可以解析如下所示的表达式,我调用一个方法,并希望在该方法调用的结果之后有文本?
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'
字符串,那么它会解析并正确评估。
答案 0 :(得分:1)
即使它是表达式语言,它也基于核心编程语言并遵循其规则。
因此,如果使用+
运算符将方法结果与Java中的字符串连接起来,则应在SpEL中执行相同的操作:
"obj.someMethod() + 'test'"
是你的正确答案。
您可以使用:
"obj.someMethod().concat('test')"
当someMethod()
返回String
时,
。