确认对话框无法正确使用layoutUnit

时间:2013-10-29 17:32:29

标签: java jsf primefaces

如何解决这个问题,我正在使用带有primefaces的confimDialog和layoutunit。我已经使用了appendToBody,但是无法正常工作。 当我没有使用layoutunit正常工作。 我想使用appendToBody和我的bean访问控制器。当我使用这个属性时,它不会访问我的bean

这是我的模板:

<p:layoutUnit position="center" resizable="false" footer="© 2013 Nota Fiscal Eletrônica v. #{UsuarioLogadoControl.versao }" >
        <h:form id="formCorpo">
            <p:messages autoUpdate="true" />
            <p:growl autoUpdate="true" />
            <div class="main">
                <p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();" />
                <p:dialog widgetVar="statusDialog" header="Aguarde..." draggable="false" closable="false" resizable="false" appendToBody="true" modal="true">
                    <p:graphicImage value="/images/ajaxloadingbar.gif" />
                </p:dialog>
                <ui:insert name="corpo" />
            </div>
        </h:form>
    </p:layoutUnit>

这是我的确认对话:

<p:confirmDialog id="dialogConfirmaNotaFiscal" widgetVar="confirmacao" message="A NOTA FISCAL não terá valor fiscal caso não seja confirmada após inclusão" header="Atenção ao Incluir" showEffect="bounce" hideEffect="explode" severity="alert">
            <p:commandButton value="OK" update="msg" oncomplete="confirmation.hide()" action="#{NotaFiscalControl.incluir}" ajax="false" rendered="#{!NotaFiscalControl.substituicao}"  />
            <p:commandButton value="OK" update="msg" oncomplete="confirmation.hide()" action="#{NotaFiscalControl.substituir}" ajax="false" rendered="#{NotaFiscalControl.substituicao}" />
            <p:commandButton value="CANCELAR" onclick="confirmacao.hide()" type="button" />
       </p:confirmDialog>

1 个答案:

答案 0 :(得分:0)

您的confirmDialog需要处于单独的状态。另外,你的EL表达是不对的。

"#{NotaFiscalControl.incluir}"

EL表达式中引用的托管bean默认情况下始终以小写字符开头,如下所示:

"#{notaFiscalControl.incluir}"

您是否将您的Managed Bean NotaFiscalControl明确命名为@ManagedBean(name = "NotaFiscalControl")?如果没有,则必须在EL表达式中以小写字母开头。