在prerenderview事件侦听器中打开错误时打开primefaces对话框

时间:2012-06-10 19:43:03

标签: jsf dialog primefaces listener modal-dialog

我在prerenderview事件监听器中打开并关闭错误的primefaces对话框时出现问题。我使用事件监听器从第三方系统加载数据,在某些情况下需要特殊的身份验证。

到目前为止,当需要特殊身份验证时,我在请求范围的bean上设置了一个属性,并使用对话框的visible属性来决定对话框是否可见。

<p:dialog widgetVar="#{name}" resizable="false" modal="true"
            closable="false" id="#{name}Dialog" width="375"
            useWindow="true" 
            visible="#{specialAuthenticationBean.authenticationRequired}">

提示:#{name}是一个包含参数。

这是推荐的方法吗?

如果是,如何在单击取消或确定按钮时关闭对话框?

到目前为止,对于取消按钮,我尝试使用以下代码,但没有成功。

<p:commandButton id="cancel" value="#{messages['cancel']}" onclick="#{name}.hide()" type="button" />

有什么想法吗?

更新:我尝试了不同的事情并找到了原因。对话框没有关闭,因为对于具有不同参数的相同对话框有三个包含,但是对于所有三个对话框,可见条件都是正确的。

现在我问自己是否真的有必要拥有同一个对话框的三个实例,只是因为登录按钮执行不同的操作(bean方法)。我真正想做的是在一个bean方法调用导致打开身份验证对话框后,在身份验证对话框中提交正确的身份验证数据后再次执行相同的bean方法。

0 个答案:

没有答案