做WebService接口时,需要返回的类型为Map<String,List<E>>复杂类型。需要配置aegis.xml文件。配置文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="getDefResultByWaybillNos">
<return-type keyType= "java.lang.String" componentType="#expiredLists"/>
</method>
<component name="expiredLists" class="java.util.List" componentType="com.sf.module.expired.webService.domain.ExpiredResult"/>
</mapping>
</mappings>
说明:
keyType代表Map的key的类型。
componentType代表Map的value的类型。value的类型为List<ExpiredResult>,由于List使用了泛型类型,直接定义构件类型 ava.util.List会报错。必须指明泛型类型。#expiredLists表示构件类型为名为expiredLists的引用。expiredLists类型在下一行进行了定义。
<component name="expiredLists"对#expiredList进行了定义,class指明该构件类型是一个List,componentType指明了该List的泛型类型。
总结:
1.Map返回类型的配置格式为:<return-type keyType="key值的类型" componentType="value值的类型">。
2.如果value值类型为List泛型类型。则要指明具体的List泛型类型才行。
3.componentType就是用来指明List的泛型类型,Map的value类型的。