Jsf Primefaces下拉依赖项

Jsf Primefaces下拉依赖项,jsf,primefaces,Jsf,Primefaces,请参考这里的primefaces下拉链接,我已经用它成功地建立了一个国家和州的关系。我刚刚被要求添加一个城市作为对州的另一个依赖,我想知道如何为该城市构建hashmap 有人能帮我吗?我对primefaces、jsf和hibernator以及所有这些都很陌生,如果您能帮我看一下,我将非常感谢 Primefaces 3.4.2、JSF2.1.29 public void onCountryChange() { if(country !=null && !country.eq

请参考这里的primefaces下拉链接,我已经用它成功地建立了一个国家和州的关系。我刚刚被要求添加一个城市作为对州的另一个依赖,我想知道如何为该城市构建hashmap

有人能帮我吗?我对primefaces、jsf和hibernator以及所有这些都很陌生,如果您能帮我看一下,我将非常感谢

Primefaces 3.4.2、JSF2.1.29

public void onCountryChange() {
    if(country !=null && !country.equals(""))
        cities = data.get(country);
    else
        cities = new HashMap<String, String>();
}


<h:form>
<p:growl id="msgs" showDetail="true" />

<p:panel header="Select a Location" style="margin-bottom:10px;">
    <h:panelGrid columns="2" cellpadding="5">
        <p:outputLabel for="country" value="Country: " />
        <p:selectOneMenu id="country" value="#{dropdownView.country}" style="width:150px">
            <p:ajax listener="#{dropdownView.onCountryChange}" update="city" />
            <f:selectItem itemLabel="Select Country" itemValue="" noSelectionOption="true" />
            <f:selectItems value="#{dropdownView.countries}" />
        </p:selectOneMenu>

        <p:outputLabel for="city" value="City: " />
        <p:selectOneMenu id="city" value="#{dropdownView.city}" style="width:150px">
            <f:selectItem itemLabel="Select City" itemValue="" noSelectionOption="true" />
            <f:selectItems value="#{dropdownView.cities}" />
        </p:selectOneMenu>
    </h:panelGrid>

    <p:separator />

    <p:commandButton value="Submit" update="msgs" actionListener="#{dropdownView.displayLocation}" icon="ui-icon-check" />
</p:panel>
public void onCountryChange(){
if(country!=null&!country.equals(“”)
城市=数据。获取(国家);
其他的
cities=新HashMap();
}

@ManagedBean
@视域
公共类DropdownView实现了可序列化{
私有映射数据=新HashMap();
私人国家;
私人城市;
私有地图国家;
私人地图城市;
@施工后
公共void init(){
国家=新HashMap();
国家。put(“美国”、“美国”);
国家。put(“德国”、“德国”);
国家。看跌期权(“巴西”、“巴西”);
Map Map=newhashmap();
地图放置(“纽约”、“纽约”);
地图放置(“旧金山”、“旧金山”);
地图放置(“丹佛”、“丹佛”);
data.put(“美国”,地图);
map=新的HashMap();
地图放置(“柏林”、“柏林”);
地图放置(“慕尼黑”、“慕尼黑”);
地图放置(“法兰克福”、“法兰克福”);
数据。put(“德国”,地图);
map=新的HashMap();
地图放置(“圣保罗”、“圣保罗”);
地图放置(“里约热内卢”、“里约热内卢”);
地图放置(“萨尔瓦多”、“萨尔瓦多”);
数据。put(“巴西”,地图);
}

我想我已经成功了:

    countries1  = new HashMap<String, String>();
    countries1.put("USA", "USA");
    countries1.put("Malaysia", "Malaysia");

    Map<String,String> map = new HashMap<String, String>();
    map.put("Washington", "Washington");
    map.put("California", "California");
    data.put("USA", map);

    map = new HashMap<String, String>();
    map.put("Johor", "Johor");
    map.put("Penang", "Penang");
    data.put("Malaysia", map);

    Map<String,String> map1 = new HashMap<String, String>();
    map1.put("Washington City1", "Washington City1");
    map1.put("Washington City2", "Washington City2");
    data1.put("Washington", map1);

    map1 = new HashMap<String, String>();
    map1.put("California City1", "California City1");
    map1.put("California City2", "California City2");
    data1.put("California", map1);

    map1 = new HashMap<String, String>();
    map1.put("Johor City1", "Johor City1");
    map1.put("Johor City2", "Johor City2");
    data1.put("Johor", map1);

    map1 = new HashMap<String, String>();
    map1.put("Penang City1", "Penang City1");
    map1.put("Penang City2", "Penang City2");
    data1.put("Penang", map1);
countries1=newhashmap();
国家1.put(“美国”、“美国”);
国家1.put(“马来西亚”、“马来西亚”);
Map Map=newhashmap();
地图放置(“华盛顿”、“华盛顿”);
地图放置(“加利福尼亚州”、“加利福尼亚州”);
data.put(“美国”,地图);
map=新的HashMap();
地图放置(“柔佛”、“柔佛”);
地图放置(“槟城”、“槟城”);
data.put(“马来西亚”,地图);
Map map1=新的HashMap();
地图1.put(“华盛顿市1”、“华盛顿市1”);
地图1.put(“华盛顿市2”、“华盛顿市2”);
数据1.put(“华盛顿”,地图1);
map1=新的HashMap();
地图1.put(“加利福尼亚市1”、“加利福尼亚市1”);
地图1.put(“加利福尼亚城市2”、“加利福尼亚城市2”);
数据1.put(“加利福尼亚”,地图1);
map1=新的HashMap();
地图1.put(“柔佛市1”、“柔佛市1”);
地图1.put(“柔佛市2”、“柔佛市2”);
数据1.put(“柔佛”,map1);
map1=新的HashMap();
图1.put(“槟城1”、“槟城1”);
地图1.put(“槟城2”、“槟城2”);
数据1.put(“槟城”,地图1);
-


public void onCountryChange(){
lg.info(“变更中的国家:+country1”);
如果(country1!=null&!country1.equals(“”){
states=data.get(country1);
}
其他的
states=新的HashMap();
}
公共无效状态更改(){
lg.info(“变更状态:+状态”);
if(state!=null&&!state.equals(“”){
cities1=data1.get(state);
}
其他的
cities1=新HashMap();
}

您提到的showcase是6.2版,您提到的版本是3.4版……请记住这一点
    countries1  = new HashMap<String, String>();
    countries1.put("USA", "USA");
    countries1.put("Malaysia", "Malaysia");

    Map<String,String> map = new HashMap<String, String>();
    map.put("Washington", "Washington");
    map.put("California", "California");
    data.put("USA", map);

    map = new HashMap<String, String>();
    map.put("Johor", "Johor");
    map.put("Penang", "Penang");
    data.put("Malaysia", map);

    Map<String,String> map1 = new HashMap<String, String>();
    map1.put("Washington City1", "Washington City1");
    map1.put("Washington City2", "Washington City2");
    data1.put("Washington", map1);

    map1 = new HashMap<String, String>();
    map1.put("California City1", "California City1");
    map1.put("California City2", "California City2");
    data1.put("California", map1);

    map1 = new HashMap<String, String>();
    map1.put("Johor City1", "Johor City1");
    map1.put("Johor City2", "Johor City2");
    data1.put("Johor", map1);

    map1 = new HashMap<String, String>();
    map1.put("Penang City1", "Penang City1");
    map1.put("Penang City2", "Penang City2");
    data1.put("Penang", map1);
<h:outputLabel for="country_id1" value="#{msg.countryLabel}: *" />
                <p:selectOneMenu id="country_id1" value="#{userBean.country1}"
                    style="width:150px">
                    <p:ajax listener="#{userBean.onCountryChange}" update="state2" />
                    <f:selectItem itemLabel="Select Country" itemValue=""
                        noSelectionOption="false" />
                    <f:selectItems value="#{userBean.countries1}" />
                </p:selectOneMenu>
                <p:message for="country_id1" />

                <h:outputLabel for="state2" value="State: *" />
                <p:selectOneMenu id="state2" value="#{userBean.state}"
                    style="width:150px">
                    <p:ajax listener="#{userBean.onStateChange}" update="city22" />
                    <f:selectItem itemLabel="Select State" itemValue=""
                        noSelectionOption="false" />
                    <f:selectItems value="#{userBean.states}" />
                </p:selectOneMenu>
                <p:message for="state2" />

                <h:outputLabel for="city22" value="City: *" />
                <p:selectOneMenu id="city22" value="#{userBean.city1}"
                    style="width:150px">
                    <f:selectItem itemLabel="Select City" itemValue=""
                        noSelectionOption="true" />
                    <f:selectItems value="#{userBean.cities1}" />
                </p:selectOneMenu>
public void onCountryChange() {
    lg.info("country in change: " + country1);

    if (country1 != null && !country1.equals("")) {
        states = data.get(country1);
    }
    else
        states = new HashMap<String, String>();
}

public void onStateChange() {
    lg.info("state in change: " + state);

    if (state != null && !state.equals("")) {
        cities1 = data1.get(state);
    }
    else
        cities1 = new HashMap<String, String>();
}