0

PrimeFaces 3.4.1、MyFaces 2.0.7、Websphere Application Server 7 を使用しています。

p:tabView3 つのタブを持つコンポーネントを使用しています。アプリケーションで言語を変更すると、first tabエラーなしで正常に動作します。しかし、私が行った場合second or third tab-> 言語を変更 -> 次に、非アクティブなタブのいずれかに移動します。次の例外が発生します。

 Caused by: java.io.FileNotFoundException: Facelet /.xhtml?REQUIRED=false not found at: file:/opt/IBM/WebSphere/AppServer/profiles/mblade140/installedApps/mblade140/ldapmanager-application-ear.ear/ldapmanager-application-web.war/.xhtml?REQUIRED=false
[08.02.13 12:55:42:349 CET] 00000090 SystemErr     R    at org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory._createFacelet(DefaultFaceletFactory.java:286)

p:tabView以下は、コンポーネントのコードをどのように記述したかです

    <h:form id="headerForm" prependId="false">
    <h:inputHidden id="activeTabIndexId" value="#{AppUserManagementBean.activeTabIndex}" />
    <p:remoteCommand update="tabView:fieldAppUserMgmt,tabView:filterApps,tabView:filterRoles,tabView:panel_grid_newuser" 
            name="onTabChange" 
            process="activeTabIndexId,@this" 
            actionListener="#{AppUserManagementBean.onTabChanged}" >
            <f:param name="REQUIRED" value="false"/>
    </p:remoteCommand>

    <p:tabView id="tabView" dynamic="true" cache="true" activeIndex="#{AppUserManagementBean.activeTabIndex}"
        onTabChange="document.getElementById('activeTabIndexId').value = index;onTabChange();">

        <p:tab id="userManagementTab" title="#{msgs.UserManagement_Title}">
            <ui:include src="UserManagement.xhtml" />
        </p:tab>
        <p:tab id="applicationUserManagementTab"
            title="#{msgs.AppUserMgmt_Title}">
            <ui:include src="AppUserManagement.xhtml" />
        </p:tab>
        <p:tab id="userGroupManagementTab"
            title="#{msgs.UserGroupMgmt_Title}">
            <ui:include src="UserGroupManagement.xhtml" />
        </p:tab>
    </p:tabView>
</h:form>

バッキング Bean の言語を変更するために私が書いたコードを次に示します。このメソッドは言語の変更時に呼び出されますp:selectOneMenu

    public void setLocale(String selectedLocale) {
    System.out.println("Changing locale to "+selectedLocale);
    this.locale = selectedLocale;
    for (Map.Entry<String, Locale> entry : countryMap.entrySet()) {
        if (entry.getValue().toString().equals(selectedLocale)) {
            FacesContext.getCurrentInstance().getViewRoot()
                    .setLocale((Locale) entry.getValue());
        }
    }
}

ここで何が間違っていますか?誰かがこれに光を当てることができますか?

4

1 に答える 1

0

動作しました...

問題は、p:tabView私が設定したことでしたdynamic=true。削除しましdynamic=trueた。言語変更オプションは現在機能しています。どうしてか分かりません......

于 2013-02-18T06:45:26.277 に答える