PrimeFaces 4.0:Dialog.show()无效

时间:2014-03-18 17:03:29

标签: java jsf-2 primefaces

我有一个对话:

        <p:dialog id="pinDialog" widgetVar="pinDialog" width="800" binding="#{userBean.pinCheckDialog}" closable="false" modal="true" closeOnEscape="false" showEffect="clip" hideEffect="clip">
            <h:form id="pinEntry">
                <p:messages for="messagesForPinCheck"/>
                <p:outputLabel for="pinCode" value="#{messages.PinCodeRequired}"/>
                <p:inputText value="#{userBean.enteredPin}" size="4" id="pinCode"/>
                <p:commandButton value="#{messages.PinCodeSubmit}" update="@form" action="#{userBean.submitPin()}"/>
            </h:form>
        </p:dialog>

idleMonitor active()idle() userBeanpinDialog。如果用户空闲且其他条件成立,我想显示 if (isPinRequired()) { logger.debug("pin required, attempting to show pin dialog"); RequestContext.getCurrentInstance().execute("pinDialog.show()"); }

PF('pinDialog').show

显示日志消息,但屏幕上没有任何反应。我也试过{{1}}但没有成功。我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果您想在页面加载之外的其他时间显示对话框,那么您将需要使用&#39;渲染&#39;对话框表单上的属性。

<p:panelGroup id="mainPanel">
   <p:dialog rendered="#{myBean.showForm}"
   </p:dialog>
</p:panelGroup>

showForm是你的支持bean中的布尔函数,正常返回false。

如果外部p:panelGroup和p:对话框通常呈现为false,即使将render设置为true,也不会显示。