2016-06-16 7 views
1

Ich versuche doubleselect Tag von Struts2 zu verwenden, indem Sie link als Leitfaden verwenden. Wenn ich den Telefon-Ländercode (z. B. 91, 92, 216) wähle, sollten drei Städte aus diesem Land angezeigt werden.DoubleSelect in Struts2 mit einer Karte

Dafür habe ich eine . Unten ist das Tag.

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

Dies ergibt einen anderen Ausgang. In der ersten Dropdown-Liste wird der Ländercode richtig angezeigt. Aber unabhängig von der gewählten Wert in der ersten Dropdown-es zeigt immer alle Werte in der zweiten Dropdown-wie folgt aus:

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

Wie kann ich die Karte verwenden, um die gewünschte Ausgabe zu erhalten? Soll ich eine Struktur, wie dies gemäß dem angegebenen Link zu erstellen:

List<Makes> // in first drop-down 
Makes contains makeId, modelId and List<Models> // List<Models> in second drop-down 
Models contains modelId and modelName 

Wenn ja, dann wie funktioniert mein Szenario zu diesem Modell passen?

+0

Ihr scenarion nicht der Fall ist, haben Sie keinen Code schreiben Sie Modell verwandt. Fragen, die Debugging-Hilfe suchen ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein spezifisches Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels. –

Antwort

1

IF the top object is still available, sollten Sie in der Lage sein, die innere Liste SubFilter es wie mit folgt:

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