繁体   English   中英

Primefaces Ajax事件更改不调用侦听器

[英]Primefaces ajax event change don't call listener

好吧,我在ManagedBean中有一个重新加载bean的方法。 这是我的XHTML代码:

<h:outputText value="Contrato: *" styleClass="bold" />
                        <p:selectOneMenu converter="entityConverter"
                            disabled="#{layoutExportacaoMB.bean.id != null}"
                            value="#{layoutExportacaoMB.contratoSelecionado}"
                            effect="fade" required="true" filter="true" filterMatchMode="contains"
                            requiredMessage="O Contrato é obrigatório">
                            <f:selectItem itemLabel="Selecione um Contrato" itemValue="" />
                            <f:selectItems value="#{layoutExportacaoMB.contratos}"
                                var="contrato"
                                itemLabel="#{contrato.numeroContratoFormatadoECliente}"
                                itemValue="#{contrato}" />
                            <p:ajax event="change" update="produtos" listener="#{layoutExportacaoMB.carregarProdutosContrato}" />
                        </p:selectOneMenu>

当用户更改此项时,必须调用以下方法,但是不会发生。 我知道触发了ajax事件更改,因为我的组件“ produtos”已更新。

请参阅我在ManagedBean上的方法:

public void carregarProdutosContrato(){
    logger.info("Carregando contrato "+contratoSelecionado.getNumeroContratoFormatado());
    contratoSelecionado = (Contrato) getBoPadrao().findByNamedQuery(Contrato.FIND_COM_PRODUTOS_BY_ID, 
        new NamedParams("id", contratoSelecionado.getId()));
    }

解:

我认为解决方案更简单,只需将监听器与“()”一起使用,请看:

                    <p:ajax event="change" update="produtos" listener="#{layoutExportacaoMB.carregarProdutosContrato()}" />

为我工作。

请尝试以下:):

  1. 确保您的<p:selectOneMenu><h:form>
  2. process="@this"属性添加到您的<p:ajax>
  3. 添加带有globalOnly="false"<p:growl>autoUpdate="true"可以帮助您识别任何验证和转换错误。

对我来说,问题在于对象的价值

<p:selectOneMenu value="#{userMB.getOneObject()}" ...

是没有以某种方式连接到托管bean的对象(在这里我通过函数调用来获得它)。 selectOneMenu的值应该是托管bean的属性,或者至少是某个jsf范围中保留的值。 那就是我对发生的事情的理解。 希望能帮助到你。

<p:selectOneMenu value="#{userMB.oneObject}" ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM