推土机将字符串映射到字符串

时间:2011-10-28 17:41:23

标签: java jaxb dozer

我正在使用Dozer,它正在将来自WebService的JAXB对象映射到驻留在应用程序服务层中的业务对象。在某些特定情况下,我需要将String值中的代码映射到String值中的可读描述。 示例:" FLT"映射到" FLAT"和" TRP"映射到" TRAP"。我有很多这些类型的映射。

我通过继承 DozerConverter 并实现两个抽象方法 convertTo ()和 convertFrom ()来实现自定义Dozer转换器。在这些内部我想映射" FLT"到" FLAT"和" FLAT"到" FLT"分别但不可靠的是,Dozer没有正确地调用正确的 convertTo ()或 convertFrom ()方法。

有没有其他人有这个问题,可以指出我正确的方向? 感谢

2 个答案:

答案 0 :(得分:2)

如果您可以控制POJO,则可以将这些字符串视为枚举。您必须为Web服务端和业务逻辑端定义枚举,但我认为这比使用转换器或xmladapter更优雅。

枚举示例:

public enum ENUM_WS {
  @XmlEnumValue("TRP") TRAP,
  @XmlEnumValue("FLT") FLAT
}

public enum ENUM_BL {
  @XmlEnumValue("TRAP") TRAP,
  @XmlEnumValue("FLAT") FLAT
}

答案 1 :(得分:0)

您可以在JAXB级别解决此问题。为此,您可以利用将XML字符串(即FLT)转换为对象字符串(即FLAT)的XmlAdapter

如果要从XML模式生成对象模型,则以下内容可能有所帮助: