Выражение фильтра Spring Integration с использованием SPeL - PullRequest
3 голосов
/ 06 июля 2011

У меня есть компонент конфигурации, у которого есть список допустимых значений:

@Component
public class Conf {
    public List<String> getAllowedValues() {
        return Arrays.asList("A", "B", "C", "D");
}

Я заполнил свои заголовки сообщений полем с именем someValue, и я хочу использовать элемент фильтра для исключения сообщений, в которых someValue отсутствует в списке разрешенных значений.

Мой контекст выглядит так:

<int:filter expression="#{conf.allowedValues}.contains(headers.get('someValue'))"/>

Но я получаю: SpelParseException: EL1041E:(pos 1): After parsing a valid expression, there is still more data in the expression: 'comma(,)'

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

Ответ был предоставлен здесь :

<int:filter expression="@conf.allowedValues.contains(headers.get('someValue'))"/>
0 голосов
/ 21 июля 2015

Я получил более простое (возможно, не лучшее) решение для этого.

<int:filter expression="{"A", "B", "C", "D"}.contains(headers.get('someValue'))" />

ссылка

...