JSF onclick刷新页面

时间:2014-05-19 10:36:41

标签: jsf jsf-2 primefaces

<h:commandButton  onclick="window.open('/page.html')" value="test" action="#{bean.myAction}"></h:commandButton>

点击上方后,浏览器会刷新页面并滚动到顶部。

如果我使用&#34;则返回false;&#34;行动永远不会运行。

如何阻止这种情况发生?

3 个答案:

答案 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>