我正在使用JSF 2.0开发一个应用程序。我也在使用Primefaces组件库。我对Primefaces的p:confirmDialog有问题。一旦我想要显示一个p:confirmDialog,它几乎立即消失。最奇怪的是,只有部署在GlassFish Server上的应用程序才会出现此问题。当我在家里的计算机上将相同的.war文件上传到GlassFish服务器时,或者当我在Netbeans中运行应用程序时,不会发生此问题。我真的无法找出这个问题的原因是什么。此外,我在Google上找不到任何相关信息。任何帮助将不胜感激!这是我的代码:
<h:commandButton value="Verwijderen" onclick="bezoekConfirmation.show()" styleClass="verwijderKnopBig" rendered="#{pageRenderController.canWriteBezoekenMobiele}" />
<p:confirmDialog message="Bent u zeker dat u dit bezoek wilt verwijderen?" closable="false"
header="Bezoek verwijderen" severity="alert" widgetVar="bezoekConfirmation">
<p:commandButton value="Ja" oncomplete="bezoekConfirmation.hide()" action="#{bezoekenMobieleController.deleteBezoek}" ajax="false" />
<p:commandButton value="Nee" onclick="bezoekConfirmation.hide()" type="button" />
</p:confirmDialog>
答案 0 :(得分:16)
点击按钮将导致提交。出现对话框,并立即重新加载页面。
改变这个:
bezoekConfirmation.show()
到此:
bezoekConfirmation.show(); return false;
你的版本在家里的电脑上工作真的很奇怪。
答案 1 :(得分:4)
只有在您不打算调用方法或设置变量时,return false;
的解决方案才有效。
在这种情况下,只需使用oncomplete="dialog.show();"
代替onclick="dialog.show();"
这将通过方法调用。
示例:
鉴于以下代码在某种数据表中,您可以拥有
<p:commandButton value="edit" update=":dialog" oncomplete="dialog.show();">
<f:setPropertyActionListener target="#{bean.field}" value="#{_item}" />
</p:commandButton>
或直接致电setter
<p:commandButton value="edit" update=":dialog" oncomplete="dialog.show();" action="bean.setField(_item)">
</p:commandButton>
答案 2 :(得分:1)
<h:commandButton value="Verwijderen" onclick="bezoekConfirmation.show()" styleClass="verwijderKnopBig" rendered="#{pageRenderController.canWriteBezoekenMobiele}" />
<p:confirmDialog message="Bent u zeker dat u dit bezoek wilt verwijderen?" closable="false"
header="Bezoek verwijderen" severity="alert" widgetVar="bezoekConfirmation" appendToBody="true">
<p:commandButton value="Ja" oncomplete="bezoekConfirmation.hide()" action="#{bezoekenMobieleController.deleteBezoek}" ajax="false" />
<p:commandButton value="Nee" onclick="bezoekConfirmation.hide()" type="button" />
</p:confirmDialog>
appendToBody="true"
将克服您的问题