我们需要使用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。
答案 0 :(得分:0)
您的页面会刷新,因为<h:commandButton />
默认设置为通过 POST 提交封闭表单并加载操作属性的结果(保留操作) 空重新加载当前页面)
要阻止提交按钮,您可以添加带有值的类型属性 按钮
<h:commandButton type="button" />
使用<p:commandButton />
(默认情况下用于执行 AJAX 请求)的 mousedown 和 mouseout 事件的选项而不是通过 POST 提交并仅更新更新属性中列出的组件,并从其样式的功能中受益,与{{1}结合使用}。
<p:remoteCommand />
commandButtonView 是具有适当的动作侦听器方法的辅助bean。