2016-06-16 1 views
1

Я пытаюсь использовать тэг doubleselect от Struts2, используя в этом руководстве link. Когда я выбираю телефонный код телефона (например, 91, 92, 216), он должен отображать три города из этой страны.doubleleselect в Struts2 с использованием карты

Для этого у меня есть 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] 

Как я могу использовать карту, чтобы получить желаемый результат? Должен ли я создать структуру, как это, согласно данной ссылке:

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

Вашего scenarion не, вы не размещать код, связанный с вами моделью. Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. См.: Как создать минимальный, полный и проверенный пример. –

ответ

1

IF 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)" 
/>