2016-10-04 3 views
0

私はprimefaceが初めてで、 "selectOneMenu"コンポーネントの問題に直面しています。私はすべての私のページに表示されるmainMenu.xhtmlファイルを実装しました。このメインメニューには、言語変更のための「selectOneMenu」コンポーネントがあります。 "selectOneMenu"は、開始ページといくつかの他のページでは開きませんが、開くべきページとそれに応じて動作するページもあります。私は数日前にネットを検索し、ヒントや提案を見つけることができず、それが私の問題を解決しました。 ここでいくつかの助けを見つけるのはとてもいいですね。primefaces:selectonemenuがすべてのページで開かない

以下のコードを参照してください。Identity_Sessionは@ SessionScoped-beanです。 "languageSet"は(String、Integer)のペアのHashMapです。

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:f="http://xmlns.jcp.org/jsf/core"> 
    <h:head> 

    </h:head> 
    <h:body> 
     <h:form>  

      <p:panel>      
       <h:panelGrid columns="2" cellpadding="5" style="right: 700px; position: absolute; margin-top: -7px;" rendered="#{identity_Session.showMenuLogout()}"> 
        <p:outputLabel for="languageComboBox" value=" #{identity_Session.translate('outputlabel_language')}:" style="font-weight:bold"/> 
        <p:selectOneMenu id="languageComboBox" value="#{identity_Session.languageID}" style="width:150px"> 
         <p:ajax listener="#{identity_Session.translationAction()}" update="@all" delay="1000"/> 
         <f:selectItems value="#{identity_Session.getLanguageSet()}" /> 
        </p:selectOneMenu> 
       </h:panelGrid>       
      </p:panel> 

     </h:form> 
     <br/> 
     <br/> 
    </h:body> 
</html> 

UPDATE !!! 同じWebページ上で同じ値(上記と同じ)を持つ同じselectOneMenuを使用しています。 selectOneMenuを「west」-layoutUnitに配置すると開きませんが、「east」-layoutUnitに配置すると開きます。これは実際には "PrimeFaces" - バグか、何か不足していますか?

+0

に変更しようか? – Kukeltje

+0

残念ながら、それは動作しません。次のエラーメッセージが表示されます。javax.faces.component.html.HtmlPanelGridをorg.primefaces.model.menu.MenuElementにキャストできません。理由は、 "menuBar"コンポーネントは "menuItems"、 "subMenus"、 "facets"で構成されていると思います。私はあなたが単に "パネル"、 "panelGrid"または他のコンポーネントタイプを "menuBar"に置くことはできないと思います – shaolinmonkabbot

+0

@allは使用することはお勧めしません、 – Nikola

答えて

0

は、オプションファセットを削除したらどう

</f:panel> 

</p:panel> 
+0

助けてくれなかった.... – shaolinmonkabbot

+0

次回はいくつかのテキストを**のように追加してみてください。また、わからない場合は、コメントを追加してください。 – Kukeltje

関連する問題