303.4. OGNL 표현식 지원


Camel 2.3에서 사용 가능

INFO:Camel의 OGNL 지원은 방법만 호출하는 것입니다. 필드에 액세스할 수 없습니다. Camel 2.11.1 이후 Java 배열의 길이 필드에 액세스하기 위한 특수 지원이 추가되었습니다.

이제 SimpleBean 언어에서 fashion과 같은 체인에서Beans를 호출하는 Camel OGNL 표기법을 지원합니다. Message IN 본문에 getAddress() 메서드가 있는 DestinationRule이 포함되어 있다고 가정합니다.

그런 다음 Camel OGNL 표기법을 사용하여 주소 오브젝트에 액세스할 수 있습니다.

simple("${body.address}")
simple("${body.address.street}")
simple("${body.address.zip}")

Camel은 getknative의 단축 이름을 이해하지만 메서드를 호출하거나 다음과 같은 실제 이름을 사용할 수 있습니다.

simple("${body.address}")
simple("${body.getAddress.getStreet}")
simple("${body.address.getZip}")
simple("${body.doSomething}")

null safe 연산자(?.)를 사용하여 NPE를 방지할 수도 있습니다(예: 주소가 없는 경우).

simple("${body?.address?.street}")

또한 또는 목록 유형에서 인덱싱할 수 있으므로 다음을 수행할 수 있습니다.

simple("${body[foo].name}")

본문이 Map 을 기반으로 하고 foo 를 키로 사용하여 값을 조회하고 해당 값에 getName 메서드를 호출합니다.

키에 공백이 있는 경우 키를 따옴표로 묶어야 합니다 (예: 'foo bar').

simple("${body['foo bar'].name}")

Map 또는 List 개체에 직접 키 이름( dots 포함 또는 없이)을 사용하여 액세스할 수 있습니다.

simple("${body[foo]}")
simple("${body[this.is.foo]}")

키가 foo 인 경우 다음과 같이 null safe 연산자를 사용하여 NPE를 방지할 수 있다고 가정합니다.

simple("${body[foo]?.name}")

예를 들어 List 유형에 액세스하여 수행할 수 있는 주소에서 행을 가져올 수도 있습니다.

simple("${body.address.lines[0]}")
simple("${body.address.lines[1]}")
simple("${body.address.lines[2]}")

목록의 마지막 값을 가져오는 데 사용할 수 있는 특별한 마지막 키워드가 있습니다.

simple("${body.address.lines[last]}")

그리고 2 번째 마지막을 얻으려면 마지막-1 을 사용하여 다음을 나타낼 수 있습니다.

simple("${body.address.lines[last-1]}")

그리고 3 번째 마지막은 물론:

simple("${body.address.lines[last-2]}")

그리고 목록에서 size 메서드를 호출할 수 있습니다.

simple("${body.address.lines.size}")

Camel 2.11.1 이후부터 Java 배열의 길이 필드에 대한 지원도 추가했습니다. 예를 들면 다음과 같습니다.

String[] lines = new String[]{"foo", "bar", "cat"};
exchange.getIn().setBody(lines);

simple("There are ${body.length} lines")

그리고 예, 아래와 같이 Operator 지원과 결합할 수 있습니다.

simple("${body.address.zip} > 1000")
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동