是否有任何方法(或正确的方法)可以根据支持 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;
}
我只想在 conditionFlag
为 true
时显示对话框。在 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/