2011-10-28 287 views
2

我正在與Dozer合作,它將來自WebService的JAXB對象映射到駐留在應用程序服務層中的業務對象。在某些特定情況下,我需要將字符串值中的代碼映射到字符串值中的可讀描述。 示例:「FLT」映射到「FLAT」和「TRP」映射到「TRAP」。我有很多這些類型的映射。將轉換器映射字符串轉換爲字符串

我通過繼承DozerConverter和實施兩個抽象方法的ConvertTo()和convertFrom()實現自定義推土機轉換器。在這些我想要分別地映射「FLT」到「FLAT」和「FLAT」到「FLT」,但不合格的推土機不正確地調用convertTo()或convertFrom()方法。

有沒有其他人有這個問題,可以指出我在正確的方向嗎? 謝謝

回答

2

如果你有過的POJO控制,你可以把這些字符串作爲枚舉。你將不得不爲web服務端和業務邏輯端定義枚舉,但我認爲這是一個比使用轉換器或xmladapter更優雅的解決方案。

枚舉的示例:

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

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