不同的行为PF选择一个菜单JSF selectOnemenu

时间:2016-03-04 10:12:24

标签: jsf jsf-2 primefaces

我遇到使用primefaces selectOneMenu的问题。我有一个菜单从支持bean获取其selectItems值。菜单的容器由ajax更新。使用primefaces菜单,更新后所有项目都会丢失,使用标准JSF菜单,所有项目看起来都很好。

XHTML:

  <p:outputPanel id="myContainer" widgetVar="myContainerVar">
    <p:outputPanel rendered="#{somePresenter.renderBox}">
      <h:selectOneMenu id="mySelectMenu"     
        converter="omnifaces.SelectItemsConverter" 
        value="#{somePresenter.someObject}">

        <f:selectItems value="#{somePresenter.someObjectList}" 
          var="item" itemValue="#{item}" itemLabel="#{item}" /> 
      </h:selectOneMenu>

      <p:selectOneMenu id="mySelectMenuP" 
        converter="omnifaces.SelectItemsConverter"
        value="#{somePresenter.someObject}">

        <f:selectItems value="#{somePresenter.someObjectList}" 
          var="item" itemValue="#{item}" itemLabel="#{item}" /> 
      </p:selectOneMenu>
    </p:outputPanel>
  </p:outputPanel>

<p:commandLink action="#{somePresenter.doIt()}" update="myContainer"
value="doIt!" />

豆:

@Getter
@Setter
private SomeObject someObject;

@Getter
@Setter
private Boolean renderBox = true;

public List<SomeObject> getObjectList(){
  return objectBoundary.getList();
}

public void doIt(){ this.renderBox = !this.renderBox; }

首次显示页面时,两个菜单都填充了项目。但是,只要我关闭并打开容器(按两次命令链接),h:selectOneMenu看起来仍然正常,而p:selectOneMenu已丢失所有项目。

我使用googles开发人员工具仔细研究,两个菜单都有项目作为选项。 p菜单似乎没有正确呈现。

Weird OneMenu behaviour

使用枚举而不是显示的对象时,我遇到了完全相同的问题。演示者是@Named和@ViewScoped。

我真的很感激任何帮助,因为我已经坚持了很长一段时间了。提前谢谢!

---编辑---

我正在使用Primefaces 4.0和JSF 2.2版

---编辑---

升级到PF 5.3会使菜单看起来略有不同:

Slightly different menu after upgrade to PF 5.3

0 个答案:

没有答案