我在注册表中有以下代码。基本上,按钮调用一个操作(一个Ejb方法和一个action监听器,这是一个实用程序方法)。当用户提交注册表单时,应该出现一个素数面对话框,告诉用户正在处理注册。提交表单后,相同的对话框将消失。这可以通过Primefaces UIBlock来实现;但是,它要求commandButton启用ajax。
我考虑过使用:onstart=display some mode dialog&onsuccess或on complete=隐藏此对话框(<p:dialog widgetVar="dialog" ...
),但此解决方案需要为primefaces commandButton启用ajax。
关于如何在PrimeFaces命令按钮中将ajax设置为false的情况下实现这一点,有什么线索吗?
感谢
<h:form id="form_register">
<p:panel id="panel_register">
<div align="center" style="padding: 5px;">
<p:commandButton id="register" ajax="true"
actionListener="#{mailBean.deliverEmail(newMember.email,newMember.name, newMember.username, newMember.password, newMember.isadmin)}"
action="#{memberController.register}" value="Register"
label="Register">
<f:setPropertyActionListener target="#{requestScope.wait}"
value="#{true}" />
</p:commandButton>
</div>
<p:blockUI block="panel_register" trigger="register">
<h:outputText value="Please wait..." />
<br />
<p:graphicImage value="#{resource['gfx/gif.gif']}" />
</p:blockUI>
编辑:谢谢大家。我在commandButton中错误地使用了更新属性。现在一切都很好
您应该使用onstart和oncomplete操作来显示/隐藏对话框。
<p:commandButton id="register" onstart="dlg.show()" oncomplete="dlg.hide()" />