【问题标题】:Apache Camel Dozer Expresison MappingApache Camel Dozer 表达式映射
【发布时间】:2015-12-12 12:32:19
【问题描述】:

我正在尝试使用 Apache Camel 和 Dozer 映射将一个类映射到另一个类。

在我的路线中,我将一个类的对象保存在一个属性中,例如.setProperty("test", testClass)。现在我想从这个属性中取出类对象并将其映射到一个新类的字段。

骆驼推土机文档Camel Dozer 说可以将表达式映射到字段。如果我试图将属性的值映射到相应的字段,我总是得到 null 作为值。

这是我试图获取属性值的方式

<field custom-converter-id="_expressionMapping" custom-converter-param="simple:${exchangeProperty.test}">
    <a>expression</a>
    <b>targetField</b>
</field>

有没有可能做到这一点?

【问题讨论】:

    标签: java apache-camel dozer


    【解决方案1】:

    就在我的脑海中,查看文档,您可能只是在“$”符号前遗漏了一个“\”:

    <field custom-converter-id="_expressionMapping" 
        custom-converter-param="simple:\${exchangeProperty.test}">
      <a>expression</a>
      <b>targetField</b>
    </field>
    

    我认为它甚至在documentation 的末尾特别提到:

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

    【讨论】:

    • 我用“\”试过了,但是没有用。相同的代码适用于其他数据类型,如整数或 BigInteger。但是如果我使用一个类的对象,它就不再起作用了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多