2016-10-04 42 views
0

我是新来的primefaces,并且已经面临“selectOneMenu”组件的问题。我已经实现了一个mainMenu.xhtml文件,该文件在我的所有页面上都可见。这个mainmenu有一个用于语言变更的“selectOneMenu”组件。 “selectOneMenu”不会在起始页面和其他几个页面上打开,但也有一些页面可以打开并按照它应该的方式工作。我已经搜索了几天的网络,并找不到任何暗示或建议,这解决了我的问题。 会很高兴在这里找到一些帮助。primefaces:selectonemenu没有在所有页面上打开

下面

见代码:Identity_Session是@ SessionScoped豆; “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> 

更新! 我在同一个网页上使用相同的值(如上所述)selectOneMenu。当我将selectOneMenu放在“west”-layoutUnit中时,它不会打开,但是当我将它放在“东”-layoutUnit中时,它会打开。这实际上是一个“PrimeFaces” - 或者我错过了什么?

+0

如果你删除的选项方面? – Kukeltje

+0

不幸的是它不起作用。我收到以下错误消息:javax.faces.component.html.HtmlPanelGrid无法转换为org.primefaces.model.menu.MenuElement。我认为原因是,“menuBar”组件由“menuItems”,“subMenus”和“facets”组成。我认为你不能只是把“面板”,“panelGrid的”或其他组件类型,不建议 – shaolinmonkabbot

+0

@all使用,尽量没有Ajax – Nikola

回答

0

尝试改变

</f:panel> 

</p:panel> 
+0

没有帮助.... – shaolinmonkabbot

+0

下次尝试添加一些文本为**为什么**你认为这有助于。如果您不确定,请添加评论。 – Kukeltje