我正在使用SPEL表达式,并且在我的应用程序启动时遇到此错误。
ftpOutboundGateway.setRenameExpressionString("'/processed/headers['file_remoteFile']'");
得到以下异常:
EL1041E: After parsing a valid expression, there is still more data in the expression: 'file_remoteFile'
我在这里做错了什么?任何帮助将不胜感激。
答案 0 :(得分:1)
请注意,您使用了4个'
字符。 " ... "
用于将String传递给Java的方法。 "' ... '"
定义所传递的参数也应被识别为String本身。字符串中的每个附加'
字符必须用两个''
进行转义。以下代码应该可以正常工作(未经测试,但是被捕获了):
ftpOutboundGateway.setRenameExpressionString("'/processed/headers[''file_remoteFile'']'");
摘自Spring框架文档4.3.1. Literal Expressions:
支持的文字表达式的类型为字符串,数值(int,实数,十六进制),布尔值和null。字符串由单引号引起来。要将单引号本身放在字符串中,请使用两个单引号字符。
答案 1 :(得分:0)
您需要'/processed/' + headers[file_remoteFile]
。