jsf - 如何有条件地显示 p :dialog based on backing bean condition

标签 jsf primefaces modal-dialog

是否有任何方法(或正确的方法)可以根据支持 bean 条件有条件在 primefaces 上显示对话框? 代码如下所示:

<!-- dialog declaration -->
<p:dialog id="dialogTest" widgetVar="dialogTest" header="#{text['modal.header']}" modal="true" >
                <h:outputText value="Test output" />
            </p:dialog>
<!-- caller -->
<p:menuitem value="Check" actionListener="#{backingBean.performCheck}" oncomplete="PF('dialogTest').show()" icon="ui-icon-arrowthick-1-e"/>                            

我的支持 bean 如下所示:

private boolean conditionFlag; // ... +getter

public void performCheck() {
    // ... access managers (database)
    this.conditionFlag = dao.check();// some check;
}

我只想在 conditionFlagtrue 时显示对话框。在 performCheck 运行后,如何在 p:menuitem 上执行类似的操作?

oncomplete="if (#{backingBean.conditionFlag}) { PF('dialogTest').show() }"
  • JSF 2.0
  • Primefaces 5
  • Java 1.7

最佳答案

我让它按如下方式工作

<!-- dialog declaration -->
<h:form id="dialogForm">
   <p:dialog id="dialogTest" 
             widgetVar="dialogTest" 
             header="#{text['modal.header']}" 
             modal="true">
               <h:outputText value="Test output" />
   </p:dialog>
</h:form>
<!-- caller -->
<p:menuitem value="Check" 
            actionListener="#{backingBean.performCheck}" 
            oncomplete="if (#{backingBean.conditionFlag}) { PF('dialogTest').show() }"
            icon="ui-icon-arrowthick-1-e" 
            update="@this, :dialogForm, :dialogForm:dialogTest"/> 

支持 bean 保持不变(如问题中所示)。

主要区别在于oncomplete属性和ajax update属性()

关于jsf - 如何有条件地显示 p :dialog based on backing bean condition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25310500/

相关文章:

jsf - PrimeFaces 扩展 - 空值属性

Jquery 模态对话框禁用表单元素

jquery - 通过单击背景而不是内容来关闭模态

jsf - 将 Angular2 集成到现有的 JSF 项目中

jsf - 应用 <p :commandButton> style to <p:commandLink> because I basically need <p:commandButton target ="_blank">

jsf - setPropertyActionListener 与 h :selectOneMenu

java - 右键单击 PrimeFaces 数据表更新选择

javascript - 使用模态 Bootstrap-vue 获取背景上的事件点击

html - JSF 显示 HTML 注释

javascript - 在 JSF 复合组件中集成 JavaScript,干净的方式