我使用primefaces对话框作为弹出的目的。但是每次它被打开时,整个屏幕都会自动刷新,弹出窗口也会消失。
< p:dialog id="dialog" header="Select different user" styleClass="atf-header" widgetVar="dlg" appendToBody="true">
<ui:include src="searchpopup.xhtml" />
</p:dialog>
<h:panelGroup>
<h:outputLabel value="#{I18N['Create_Ticket_for_other_users']}" styleClass="atf-header" style="width:600px"></h:outputLabel>
</h:panelGroup>
<h:panelGroup id="search_section" layout="block"
styleClass="atf-content-area atf-separarot-botton" style="width:600px">
<h:panelGroup id="input_search_section" >
<h:outputText id="name" value="Siddharth Mishra"
labelStyleClass="atf-label">
</h:outputText>
</h:panelGroup>
<h:panelGroup styleClass="atf-right atf-inline-block">
<p:commandButton id="btn_search" value="select different user"
styleClass="atf-button-search" onclick="dlg.show()">
</p:commandButton>
</h:panelGroup>
</h:panelGroup>
您的p:commandButton
是AJAX按钮(这是默认的primefaces),它提交整个表单。添加type="button"
属性到它,所以它将只是普通的按钮做一些JavaScript(所谓的按钮)。我也没有看到h:form
标签在哪里。当你有appendToBody="true"
在你的p:dialog
是岸边,你不封装p:dialog
在h:form
。如果有必要,你应该把h:form
放在p:dialog
里面,如果没有的话,把p:dialog
移到h:form
外面。