使用特定事件阻止页面刷新

时间:2016-07-25 23:50:34

标签: ajax jsf events

我们需要使用Internet Explorer,我们正在使用Java 8,PrimeFaces 5.3和Glassfish 4.x.我必须编写一个处理直播流的界面。我的流工作正常。

不幸的是,命令是通过网络通过CGI发送的(我们无法控制它)。我需要在mousedown上发送start命令,在mouseout或mouseup上发送一个stop命令。我遇到了两个问题。我正在使用h:commandButton,因为p:commandButton不支持我需要的鼠标事件。我通过谷歌进行了很多搜索,但我找不到任何答案。以下是代码示例:

<h:commandButton id="right" value="▶">
    <f:ajax event="mousedown" listener="#{backingBean.menubar.processAction('right', event)}" render="@none" />
</h:commandButton>

添加event=""时会出现问题。如果我遗漏了event="",则该页面不会刷新。这就是我要的。我根本不希望页面刷新。如果我添加event="",无论我多么尝试,页面都会刷新。

我有什么选择?我应该注意,事件总是为空。支持bean中的方法最初是ActionListener。

1 个答案:

答案 0 :(得分:0)

您的页面会刷新,因为<h:commandButton />默认设置为通过 POST 提交封闭表单并加载操作属性的结果(保留操作) 空重新加载当前页面)

要阻止提交按钮,您可以添加带有值的类型属性 按钮

<h:commandButton type="button" />

使用<p:commandButton />(默认情况下用于执行 AJAX 请求)的 mousedown mouseout 事件的选项而不是通过 POST 提交并仅更新更新属性中列出的组件,并从其样式的功能中受益,与{{1}结合使用}。

<p:remoteCommand />

commandButtonView 是具有适当的动作侦听器方法的辅助bean。