2011-10-28 234 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 
}