【问题标题】:primefaces: selectonemenu does not open on all pagesprimefaces:selectonemenu 不会在所有页面上打开
【发布时间】:2016-10-04 06:43:13
【问题描述】:

我是 primefaces 的新手,并且已经面临“selectOneMenu”组件的问题。我已经实现了一个 mainMenu.xhtml 文件,它在我的所有页面上都可见。这个主菜单有一个用于语言更改的“selectOneMenu”组件。 “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>

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

【问题讨论】:

  • 如果您删除选项方面会怎样?
  • 不幸的是它不起作用。我收到以下错误消息:javax.faces.component.html.HtmlPanelGrid 无法转换为 org.primefaces.model.menu.MenuElement。我认为原因是,“menuBar”组件由“menuItems”、“subMenus”和“facets”组成。我认为您不能只将“面板”、“面板网格”或其他组件类型放入“菜单栏”
  • @all 不建议使用,尽量不使用ajax更新整个页面
  • 或将 id 提供给 body 并更新
  • stackoverflow.com/questions/10518964/…BalusC 写了关于@all 和非ajax 的区别

标签: primefaces dropdown selectonemenu


【解决方案1】:

尝试改变

 </f:panel> 

 </p:panel>

【讨论】:

  • 下次尝试添加一些文本作为为什么您认为这会有所帮助。如果您不确定,请添加评论。
猜你喜欢
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2018-01-06
  • 1970-01-01
相关资源
最近更新 更多