【问题标题】:Primefaces update component after <p:ajax listener> [duplicate]<p:ajax listener>之后Primefaces更新组件[重复]
【发布时间】:2015-09-09 15:05:27
【问题描述】:

我有一个 selectOneMenu 可以更改支持 bean 中的值,并根据该值显示或不显示另一个组件。我想要的是在支持 bean 中的值被 selectOneMenu 更改后更新该特定组件

<h:selectOneMenu value="#{backingBean.id.value}" >
            <f:selectItem itemLabel="Choose" itemValue="0"/>
            <f:selectItems value="#{backingBean.idList}"
                var="id" itemLabel="#{id.name}" itemValue="#{id.value}" />
             <p:ajax listener="#{backingBean.changeId}" process="@this" update="userMenu"/>
</h:selectOneMenu>
<p:menu id="userMenu" rendered="#{backingBean.id.value != 0}">
</p:menu>

backing bean 中的值发生变化,但没有更新。

【问题讨论】:

  • 您的 是否用标签
    包裹?
  • 请检查您是否在支持 bean、声明或 postconstruct 方法中创建了 id 对象。在声明中看起来像“private Property id = new Property();”。

标签: ajax jsf jsf-2 primefaces


【解决方案1】:

这应该可以

<h:selectOneMenu value="#{backingBean.id.value}" >
        <f:selectItem itemLabel="Choose" itemValue="0"/>
        <f:selectItems value="#{backingBean.idList}"
            var="id" itemLabel="#{id.name}" itemValue="#{id.value}" />
         <p:ajax listener="#{backingBean.changeId}" process="@this" update="userMenuWrapper"/>
</h:selectOneMenu>
<p:outputPanel id="userMenuWrapper">
    <p:menu id="userMenu" rendered="#{backingBean.id.value != 0}"/>
</p:outputPanel>

【讨论】:

    猜你喜欢
    • 2012-11-07
    • 2016-07-27
    • 2012-07-26
    • 2014-08-03
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 2021-08-21
    • 2019-01-17
    相关资源
    最近更新 更多