使用地图在 Struts2 中进行双选

doubleselect in Struts2 using a Map

我正在尝试使用 Struts2 中的 doubleselect 标签,以此 link 作为指南。当我 select 电话国家代码(例如:91、92、216)时,它应该显示该国家的三个城市。

为此我有一个Map<Integer, List<String>。下面是标签。

<s:doubleselect 
   name="obj.countryCode" id="countryCode" list="countryCodeCityNameMap.keySet()"
   doubleName="obj.cityName" doubleId="cityName" doubleList="countryCodeCityNameMap" />

这会产生不同的输出。在第一个下拉列表中,它正确显示了国家代码。但不管第一个下拉列表中的 selected 值如何,它总是在第二个下拉列表中显示所有值,如下所示:

[aaa,bbb,ccc]
[ddd,eee,fff]
[ggg,hhh,iii]

如何使用地图获得所需的输出? 我应该根据给定的 link:

创建这样的结构吗
List<Makes> // in first drop-down
Makes contains makeId, modelId and List<Models> // List<Models> in second drop-down
Models contains modelId and modelName

如果是,那么我的场景如何适合这个模型?

IF ,您应该能够像下面这样使用它来细分内部列表:

<s:doubleselect 
         name="obj.countryCode"    id="countryCode"    list="countryCodeCityNameMap.keySet()"
   doubleName="obj.cityName" doubleId="cityName" doubleList="countryCodeCityNameMap.get(top)"
/>