【问题标题】:Expression - There is still more in the expression表达式 - 表达式中还有更多内容
【发布时间】:2018-09-27 10:58:39
【问题描述】:

我正在使用 SPEL 表达式,当我的应用程序启动时出现此错误。

ftpOutboundGateway.setRenameExpressionString("'/processed/headers['file_remoteFile']'");

得到以下异常:

EL1041E: After parsing a valid expression, there is still more data in the expression: 'file_remoteFile'

我在这里做错了什么?任何帮助将不胜感激。

【问题讨论】:

  • 只是猜测...ftpOutboundGateway.setRenameExpressionString("/processed/headers['file_remoteFile']"); ...?
  • 收到此错误。解析左操作数的问题

标签: java spring spring-el


【解决方案1】:

请注意,您使用了 4 个' 字符。 " ... " 用于将字符串传递给 Java 的方法。 "' ... '" 定义传递的参数也应该被识别为 String 本身。 String 中每个额外的' 字符必须用两个'' 转义。以下代码应该可以工作(未经测试,但已被捕获):

ftpOutboundGateway.setRenameExpressionString("'/processed/headers[''file_remoteFile'']'");

来自Spring框架文档4.3.1. Literal Expressions

支持的文字表达式类型为字符串、数值(int、real、hex)、boolean 和 null。字符串由单引号分隔。要将单引号本身放在字符串中,请使用两个单引号字符。

【讨论】:

  • 它正在按原样打印。未获取键“file_remoteFile”的值。
【解决方案2】:

你需要'/processed/' + headers[file_remoteFile]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 2019-11-19
    • 2013-07-02
    相关资源
    最近更新 更多