304.4. OGNL 표현식 지원


Camel 2.3부터 사용 가능

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

Simple 및 Cryo stat 언어는 이제 이와 같은 체인에서 빈 을 호출하기 위한 Camel OGNL 표기법을 지원합니다. Message IN 본문에 getAddress() 메서드가 있는 Cryostat가 포함되어 있다고 가정합니다.

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

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

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

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

예를 들어 본문에 주소가 없는 경우 NPE를 피하기 위해 null 안전 연산자(?.)를 사용할 수도 있습니다.

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

또한 Map 또는 List 유형에서 인덱스를 사용할 수 있으므로 다음을 수행할 수 있습니다.

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

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

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

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

지도 또는 목록 오브젝트는 키 이름( dot 포함 또는 포함)을 사용하여 직접 액세스할 수 있습니다.

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

foo 키와 값이 없는 경우 다음과 같이 null safe 연산자를 사용하여 NPE를 방지할 수 있습니다.

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

목록 유형에 액세스하여 수행할 수 있는 주소에서 행을 가져올 수도 있습니다.

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

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

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

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

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

그리고 마지막 3rd는 물론:

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

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

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
맨 위로 이동