我正在尝试使用此link作为指南,使用Struts2中的doubleselect
标记。当我选择电话国家代码(例如:91,92,216)时,它应该显示该国家的三个城市。
为此,我有一个Map<Integer, List<String>
。下面是标签。
<s:doubleselect
name="obj.countryCode" id="countryCode" list="countryCodeCityNameMap.keySet()"
doubleName="obj.cityName" doubleId="cityName" doubleList="countryCodeCityNameMap" />
这会产生不同的输出。在第一个下拉列表中,它会正确显示国家/地区代码。但无论第一个下拉列表中的选定值如何,它总是会显示第二个下拉列表中的所有值,如下所示:
[aaa,bbb,ccc]
[ddd,eee,fff]
[ggg,hhh,iii]
如何使用Map获取所需的输出? 我应该按照给定的链接创建这样的结构:
List<Makes> // in first drop-down
Makes contains makeId, modelId and List<Models> // List<Models> in second drop-down
Models contains modelId and modelName
如果是,那么我的场景如何适应这个模型?
答案 0 :(得分:1)
如果 the top
object is still available,您应该可以使用它来对内部列表进行子过滤,如下所示:
<s:doubleselect
name="obj.countryCode" id="countryCode" list="countryCodeCityNameMap.keySet()"
doubleName="obj.cityName" doubleId="cityName" doubleList="countryCodeCityNameMap.get(top)"
/>