第 15 章 EL
概述
统一表达式语言(EL)最初被指定为 JSP 2.1 标准(2.5.13.-245)的一部分,但它现在作为独立语言提供。Apache Camel 与 JUEL (http://juel.sourceforge.net/)集成,这是 EL 语言的开源实现。
添加 JUEL 软件包
要在路由中使用 EL,您需要将对 camel-juel 的依赖添加到项目中,如 例 15.1 “添加 camel-juel 依赖项” 所示。
例 15.1. 添加 camel-juel 依赖项
<!-- Maven POM File -->
<properties>
<camel-version>2.21.0.fuse-760027-redhat-00001</camel-version>
...
</properties>
<dependencies>
...
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-juel</artifactId>
<version>${camel-version}</version>
</dependency>
...
</dependencies>静态导入
要在应用程序代码中使用 el () 静态方法,请在 Java 源文件中包含以下导入语句:
import static org.apache.camel.language.juel.JuelExpression.el;
变量
表 15.1 “EL 变量” 列出使用 EL 时可访问的变量。
表 15.1. EL 变量
| 变量 | 类型 | 值 |
|---|---|---|
|
|
| 当前的交换 |
|
|
| IN 消息 |
|
|
| OUT 消息 |
示例
例 15.2 “使用 EL 的路由” 显示使用 EL 的两个路由。
例 15.2. 使用 EL 的路由
<camelContext>
<route>
<from uri="seda:foo"/>
<filter>
<language language="el">${in.headers.foo == 'bar'}</language>
<to uri="seda:bar"/>
</filter>
</route>
<route>
<from uri="seda:foo2"/>
<filter>
<language language="el">${in.headers['My Header'] == 'bar'}</language>
<to uri="seda:bar"/>
</filter>
</route>
</camelContext>