Jsf primefaces p:commandButton操作在p:对话框中不重定向

Jsf primefaces p:commandButton操作在p:对话框中不重定向,jsf,primefaces,Jsf,Primefaces,我有一个带有操作的命令按钮,返回一个要重定向到的新URL。当这个命令按钮不在p:dialog中时,一切都会像我预期的那样工作,但是当我把命令按钮放在对话框中时,对话框就会关闭,并将我留在同一页上 <h:form id="reviewForm"> <h:messages id="saveMsg" showDetail="true" globalOnly="true"/> <p:panel style="text-align: center">

我有一个带有操作的命令按钮,返回一个要重定向到的新URL。当这个命令按钮不在p:dialog中时,一切都会像我预期的那样工作,但是当我把命令按钮放在对话框中时,对话框就会关闭,并将我留在同一页上

<h:form id="reviewForm">
    <h:messages id="saveMsg" showDetail="true" globalOnly="true"/>
    <p:panel style="text-align: center">
        <p:commandButton type="button" value="Submit" onclick="showOptions(); areYouSureVar.show();" />
    </p:panel>
    <p:dialog id="areYouSure" widgetVar="areYouSureVar" resizable="false" width="400" modal="true" header="Are you sure you want to continue?">                                           
        <p:panel style="text-align: center">        
            <p:commandButton id="submit" ajax="false" value="Submit" action="#{mybean.myaction}" oncomplete="areYouSureVar.hide();"/>
            <p:commandButton type="button" value="Cancel" onclick="areYouSureVar.hide();"/>
        </p:panel>                            
    </p:dialog>
</h:form>


mybean.action返回一个指向另一个页面的字符串,但该页面从未加载,对话框将消失,仅此而已。

您可以尝试删除
modal=“true”
?我试过了,它在我的情况下起了作用


Oh ya和我还必须删除
showOptions()
,因为我没有定义它。

未经测试,但这可能有助于:

在此处签出primefaces文档(版本3.3):

第150页写道:

使用
appendToBody
时要小心,因为页面定义和html dom可能会有所不同,例如 示例:如果对话框位于h:form组件内,并且在浏览器上启用了appendToBody 对话框将位于窗体之外,并可能导致意外结果。在本例中,将表单嵌套在 对话


将对话框嵌套到表单元素中对我来说有点奇怪。

removed modal=“true”仍然存在同样的问题。您使用的是什么版本的Primefaces?我使用的是2.2.1版。您能否确保从
mybean.myaction
方法返回的任何内容都是正确的
ViewId