87.6.3. 表达式映射

表达式映射允许您使用 Camel 的强大 语言 功能来评估表达式,并将结果分配到映射中的 target 字段。 Camel 支持的任何语言都可以在表达式映射中使用。 表达式的基本示例包括将 Camel 消息标头或交换属性映射到 target 字段,或者将多个源字段串联为 target 字段。 映射表达式的语法是:

[language]:[expression]

将消息标头映射到目标字段的示例:

<mappings xmlns="http://dozermapper.github.io/schema/bean-mapping"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://dozermapper.github.io/schema/bean-mapping http://dozermapper.github.io/schema/bean-mapping.xsd">
  <mapping>
    <class-a>org.apache.camel.component.dozer.ExpressionMapper</class-a>
    <class-b>org.example.B</class-b>
    <field custom-converter-id="_expressionMapping" custom-converter-param="simple:\${header.customerNumber}">
      <a>expression</a>
      <b>custId</b>
    </field>
  </mapping>
</mappings>

请注意,您的表达式中的任何属性都必须使用 "\" 转义,以防止 Dozer 尝试解析使用 EL 定义的变量值时出现错误。