303.4. OGNL 표현식 지원


Camel 2.3 사용

INFO:Camel의 OGNL 지원은 메서드를 호출하는 데만 사용됩니다. 필드에는 액세스할 수 없습니다. Camel 2.11.1 부터 Java 배열의 길이 필드에 액세스하기 위한 특수 지원을 추가했습니다.

SimpleBean 언어는 이제처럼 체인에서 빈을 호출하는 Camel OGNL 표기법을 지원합니다. Message IN 본문에 getAddress() 메서드가 있는 POJO가 포함되어 있다고 가정합니다.

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

simple("${body.address}")
simple("${body.address.street}")
simple("${body.address.zip}")
Copy to Clipboard Toggle word wrap

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

simple("${body.address}")
simple("${body.getAddress.getStreet}")
simple("${body.address.getZip}")
simple("${body.doSomething}")
Copy to Clipboard Toggle word wrap

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

simple("${body?.address?.street}")
Copy to Clipboard Toggle word wrap

또는 목록 유형에서 인덱스를 작성할 수도 있으므로 다음을 수행할 수 있습니다.

simple("${body[foo].name}")
Copy to Clipboard Toggle word wrap

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

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

simple("${body['foo bar'].name}")
Copy to Clipboard Toggle word wrap

Map 또는 List 개체에 직접 액세스 할 수 있습니다 키 이름 (with 또는 without dots) :

simple("${body[foo]}")
simple("${body[this.is.foo]}")
Copy to Clipboard Toggle word wrap

foo 키가 있는 값이 없다고 가정하면 다음과 같이 null safe 연산자를 사용하여 NPE를 피할 수 있습니다.

simple("${body[foo]?.name}")
Copy to Clipboard Toggle word wrap

예를 들어 수행할 수 있는 주소에서 행을 가져오려면 목록 유형에 액세스할 수도 있습니다.

simple("${body.address.lines[0]}")
simple("${body.address.lines[1]}")
simple("${body.address.lines[2]}")
Copy to Clipboard Toggle word wrap

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

simple("${body.address.lines[last]}")
Copy to Clipboard Toggle word wrap

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

simple("${body.address.lines[last-1]}")
Copy to Clipboard Toggle word wrap

그리고 세 번째 마지막은 다음과 같습니다.

simple("${body.address.lines[last-2]}")
Copy to Clipboard Toggle word wrap

그리고 목록의 크기 메서드를 호출할 수 있습니다.And you can call the size method on the list.

simple("${body.address.lines.size}")
Copy to Clipboard Toggle word wrap

Camel 2.11.1 부터 Java 배열의 길이 필드에 대한 지원도 추가되었습니다.

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

simple("There are ${body.length} lines")
Copy to Clipboard Toggle word wrap

그리고 예, 다음과 같이 연산자 지원과 결합할 수 있습니다.

simple("${body.address.zip} > 1000")
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동