<h:commandButton onclick="window.open('/page.html')" value="test" action="#{bean.myAction}"></h:commandButton>
点击上方后,浏览器会刷新页面并滚动到顶部。
如果我使用&#34;则返回false;&#34;行动永远不会运行。
如何阻止这种情况发生?
答案 0 :(得分:1)
嗯,它刷新页面,为什么不呢? h:commandButton
充当简单表单提交。您需要ajax调用才能重新加载整个页面。
您可以查看,例如primefaces component library,它已准备好使用支持完全ajax调用的组件 - 请参阅<p:commandButton>
。
对于return false
,如果您在onclick
中使用它,则它不会执行操作,因为它会停止提交表单,因此,简化了&#34;不会#39;经过bean&#34;。
答案 1 :(得分:1)
<h:commandButton onclick="window.open('/page.html')" value="test" action="#{bean.myAction}">
<f:ajax execute="@this" render="@none" />
</h:commandButton>
应该在没有PrimeFaces的情况下完成;)
答案 2 :(得分:1)
不确定您使用"window.open('/page.html')"
的原因,但如果您想在操作命令完成后打开页面,请执行以下操作
<h:commandButton value="test" action="#{bean.myAction}">
<f:ajax onevent="function(data){ if(data.status === 'success') window.open('/page.html')}"/>
</h:commandButton>