1

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

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

<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 方法。

4

0 回答 0