Java SpEL正在解析有效表达式,表达式中仍有更多数据

Java SpEL正在解析有效表达式,表达式中仍有更多数据,java,spring,spring-el,Java,Spring,Spring El,我正在使用Spring表达式语言(SpEL)并创建了一个示例程序。代码片段是 ExpressionParser parser=new SpelExpressionParser(); Expression expression=parser.parseExpression("Hello SPEL"); 但还是有错误 Exception in thread "main" org.springframework.expression.spel.SpelParseException: EL1041E:

我正在使用Spring表达式语言(SpEL)并创建了一个示例程序。代码片段是

ExpressionParser parser=new SpelExpressionParser();
Expression expression=parser.parseExpression("Hello SPEL");
但还是有错误

Exception in thread "main" org.springframework.expression.spel.SpelParseException: EL1041E:(pos 6): After parsing a valid expression, there is still more data in the expression: 'SPEL'
    at org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:116)
    at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:56)
    at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:1)
    at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:66)
    at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:56)
试一试

相反

参数是一个字符串,但是解析器需要知道这是一个字符串,因为您还可以解析其他内容

有关更多信息,请查看。

试试这个

Expression expression=parser.parseExpression("'Hello SPRING'");

在使用xml文件注入bean时,我面临相同的异常:

 <bean id="myBean"
          class="mypackage.mybean"
          destroy-method="destroy"
          p:filePath=
                  "#{systemProperties'java.io.tmpdir'}#{systemProperties'file.separator'}somefile.txt"/>

使用时问题消失:[]

<bean id="myBean"
          class="mypackage.mybean"
          destroy-method="destroy"
          p:filePath=
                  "#{systemProperties['java.io.tmpdir']}#{systemProperties['file.separator']}somefile.txt"/>

我的这个可以帮你解决你的问题


有关此问题的更多信息,请参阅此问题:

如果要将其放入SpringBeans xml文件中,请尝试这样放置

#{'Hello Spel'}.

我正在使用SpringWebFlow,从ognl迁移到Spring5WebFlowSpringExpressionParser,并用bean.method()替换@package.class.method(),bean是在servlet.xml中声明的。

因为您不确定这是否有帮助,所以这不是一个答案。答案的唯一目的是解决OP的这个明确问题。现在已经有了一个向上投票的答案。我的问题与它的问题非常相似,向上投票的答案意味着一个正确的答案?首先,如果你的问题很相似,那么这个答案不在正确的位置。一个答案shell-only-answer-explicit只有OP提到的这一个问题。投赞成票的答案并不是绝对正确的答案,但由于答案上没有评论或其他任何东西,这意味着OP没有对他的问题采取行动,这就是为什么没有被接受的答案符号(不过这只是一个猜测)。但是你可以相信,特别是因为这是唯一的UPVOUTS答案,这个答案质量很高,解决了OP的问题。
#{'Hello Spel'}.