1

あなたの助けが必要です 。

私はjsf2.0とprimefaces 3.2で簡単なプロジェクトを開発しています。

最初に 2 ページありますが、page1.xhtml Whci には以下が含まれています。

        <p:column>
            <p:panel header="#{ct.coTypeName}" >
                <h:panelGrid columns="1" width="100" height="100">
                    <h:outputText value="#{ct.coTypeId}" />




                    <p:commandLink       action="distributer/distributersList.xhtml">
                        <h:graphicImage  url="/resources/images/homePagecartoonBusinessMan.jpg" width="100" height="100"/>
                        <f:param name="bt" value="dist" />
                        <f:param name="ti" value="#{ct.coTypeId}" />
                    </p:commandLink>

                </h:panelGrid>
            </p:panel>

        </p:column>

    </p:dataGrid>

コマンドリンクを押すと、別のページ「distributer/distributersList.xhtml」に転送されました。これには、IE「インターネットエクスプローラー8を使用しています」でのみ発生するページを手動で更新するまで、項目が表示されないselectOneMenuがありますが、この問題は chrome または firefox では発生しません。

私はjavascriptエラーを取得します..Webページのエラーの詳細

Message: Object expected
Line: 19
Char: 1
Code: 0
URI: http://localhost:8089/pro/



Message: Object doesn't support this property or method
Line: 1
Char: 5500
Code: 0
URI: http://localhost:8089/pro/faces/javax.faces.resource/primefaces.js?          ln=primefaces&v=3.2

selectonemenucode は次のとおりです。

<p:selectOneMenu value="#{bussinessOwnersViewerMB.selectedCity}" effect="fold" immediate="true"> 

            <f:selectItems value="#{bussinessOwnersViewerMB.cities}" var="city" itemLabel="#{city.cityName}" itemValue="#{city.cityId}"/>  


         </p:selectOneMenu>

都市配列リストのゲッターは次のとおりです。

public ArrayList<CityDto> getCities() {
    cities = cb.laodAllCities();
    System.out.println(">>>>"+cities.size());
        return cities;
}

そしてsystem.out .. arraylistのサイズが正しく表示されたメッセージが表示されますが、ページを更新するまでドロップダウンリストの項目は表示されません!

4

2 に答える 2

0

elgohary は 1 つのことを行います。isLoaded のようなブール変数を 1 つ取り、Lode メソッドのコードの下に配置します。

`

    if (isLoaded)
    {
        return;
    }
    isLoaded = true;

` そして、ページを更新する必要がある場所 int その操作は以下で行ってください

isLoaded=false;
于 2012-07-03T05:16:21.930 に答える
0

f:selectItems タグを使用した場合、itemLabel および itemValue タグは必要ありません。これらのタグは、「s」なしで f:selectItem を使用する場合に必要になります。このサンプルを試してください

     <f:selectItems value="#{bussinessOwnersViewerMB.cityList}" var="city">

都市を取得するためのサンプルメソッドは次のとおりです

     List<SelectItem> cityList = new ArrayList<SelectItem>();
        for (City city : cities) {
            SelectItem item = new SelectItem();
            item.setLabel(city.getCityName());
            item.setValue(city.getCityId());
            cityList.add(item);
     }

f:selectItems 値を、元の都市リストを変更した cityList (上記を確認) にバインドします。

于 2012-07-03T03:31:09.520 に答える