Mehrere abhängige / cascading selectOneMenu dropdown-Listen in JSF

Ich versuche zu machen 4 abhängige Menüs.

Wenn der Benutzer wählt ein Element aus dem ersten Menü, das zweite Menü angezeigt abhängigen Daten und wenn der user wählt Artikel aus die zweite , die Dritte Karte abhängig von Daten und so weiter.

Sieht der Benutzer die Elemente auf der ersten Menü-nur und die anderen leer. Wenn er wählt ein Element auf der ersten Menü-die zweite wird zeigen Daten, sondern der Dritte und vierte bleiben leer, und so weiter. Der Benutzer muss schließlich wählen Sie die Einträge aus allen 4 Menüs.

<h:selectOneMenu id="first" value="#{nodes.selectState"}>
    <f:selectItems value="#{nodes.stateList}"/>
    <f:ajax render="second">
</h:selectOneMenu>
<h:selectOneMenu id="second" value="#{nodes.selectCity"}>
    <f:selectItems value="#{nodes.cityList}"/>
    <f:ajax render="third">
</h:selectOneMenu>
<h:selectOneMenu id="third" value="#{nodes.selectRegion"}>
    <f:selectItems value="#{nodes.regionList}"/>
    <f:ajax render="fourth">
</h:selectOneMenu>
<h:selectOneMenu id="fourth" value="#{nodes.selectStation"}>
    <f:selectItems value="#{nodes.stationList}"/>
</h:selectOneMenu>

Knoten Java-Klasse

private String selectState; //+setters, getters
private String selectCity; //+setters, getters
private String selectRegion; //+setters, getters
private String selectStation; //+setters, getters
private List<SelectItem> stateList; //+setters, getters
private List<SelectItem> cityList; //+setters, getters
private List<SelectItem> regionList; //+setters, getters
private List<SelectItem> stationList; //+setters, getters

public getStateList(){
    stateList= new ArrayList<SelectItem>();
    stateList.add(new SelectItem("A"));
}

public getCityList(){
    CityList= new ArrayList<SelectItem>();
    if(selectState.equals("A")){
        CityList.add(new SelectItem("B"));
    }
}

public getRegionList(){
    RegionList= new ArrayList<SelectItem>();
    if(selectCity.equals("B")){
        RegionList.add(new SelectItem("C"));
   }
}

public getStationList(){
    StationList= new ArrayList<SelectItem>();
    if(selectRegion.equals("C")){
        StationList.add(new SelectItem("D"));
    }
}

es ist nur auf die ersten 2 Menüs 2 Menüs erhalten null-Werte

InformationsquelleAutor Shadooo Medo | 2013-05-04

Schreibe einen Kommentar