Выражение - есть еще в выражении - PullRequest
0 голосов
/ 27 сентября 2018

Я использую выражения SPEL и получаю эту ошибку при запуске приложения.

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

Получаю следующее исключение:

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

Что я делаю здесь неправильно?Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Вам нужно '/processed/' + headers[file_remoteFile].

0 голосов
/ 27 сентября 2018

Обратите внимание, что вы использовали 4 ' символов." ... " используются для передачи строки в метод Java."' ... '" определяет, что передаваемый параметр должен распознаваться как сама строка.Каждый дополнительный символ ' внутри строки должен быть экранирован двумя ''.Следующий код должен работать (не проверено, однако он обнаружен):

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

Из документации среды Spring 4.3.1.Литеральные выражения :

Поддерживаются следующие типы литеральных выражений: строки, числовые значения (целые, вещественные, шестнадцатеричные), логические и нулевые.Строки отделяются одиночными кавычками.Чтобы поместить в строку одну кавычку, используйте два символа одинарных кавычек.

...