JSF commanbutton刷新页面,弹出菜单立即消失

JSF commanbutton刷新页面,弹出菜单立即消失,jsf,popup,richfaces,Jsf,Popup,Richfaces,我试图通过检查一些条件来显示一个弹出菜单,例如,如果没有选择显示弹出窗口等,如果一切正常,请提交页面。代码如下: <h:commandButton onclick="if (#{moneyTransferManager.showPopup()}) #{rich:component('popup')}.show();" value="Devam" > <rich:componentControl

我试图通过检查一些条件来显示一个弹出菜单,例如,如果没有选择显示弹出窗口等,如果一切正常,请提交页面。代码如下:

<h:commandButton onclick="if (#{moneyTransferManager.showPopup()})
                                    #{rich:component('popup')}.show();"  value="Devam" >
      <rich:componentControl target="popup" operation="show" />

      </h:commandButton>
<rich:popupPanel id="popup" modal="false" autosized="true" resizeable="false">
      <f:facet name="header">
      <h:outputText value="Simple popup panel" />
      </f:facet>
      <f:facet name="controls">
      <h:outputLink value="#" onclick="#{rich:component('popup')}.hide();
                                return false;">
                                    X
      </h:outputLink>
      </f:facet>
       <p>
          The popup panel is open and closed from the javascript function of component client side object. The following code
                                <a href="#" onclick="#{rich:component('popup')}.hide()">hide this panel</a>:
      <f:verbatim>&#35;</f:verbatim> #{rich:component('popup')}.hide()
      </p>
      </rich:popupPanel>

X

弹出面板通过组件客户端对象的javascript函数打开和关闭。下面的代码
:
# #{rich:component('popup')}.hide()

点击按钮后,弹出窗口显示一秒钟,然后页面刷新,弹出窗口丢失。为了防止刷新页面,我尝试了:

<f:ajax execute="@form" render="@none" />

但是如果一切正常,如果我不需要弹出窗口,我需要通过commandbutton提交页面,但是因为我说render=@“none”,所以我不能这样做。那么对于这种情况我能做些什么呢

谢谢

有一个默认的按钮类型
submit
,当单击它时,它会提交封装的
h:form
。这就是为什么单击时页面会刷新

应用于java脚本的使用。此外,如果type属性设置为
按钮
,则会变成

<h:button onclick="if (#{moneyTransferManager.showPopup()})
                                        #{rich:component('popup')}.show();" value="Devam"/>


另请参见:


是否要显示弹出窗口并同时提交表单?
<h:commandButton type="button" onclick="if (#{moneyTransferManager.showPopup()})
                                    #{rich:component('popup')}.show();"  value="Devam" >