调用命令按钮操作时,保持当前页面中的WebSocket连接处于活动状态

时间:2014-01-23 09:12:43

标签: jsf websocket commandbutton

我在JSF应用程序中创建了一个WebSocket。它工作正常,但是当我使用<h:commandButton action="#{bean.something}">调用JSF bean操作时,它会重新启动WebSocket连接。

有没有办法实现这两种类型的连接而不会互相干扰?

1 个答案:

答案 0 :(得分:3)

JSF <h:commandButton>组件生成一个HTML <input type="submit">元素,该元素默认执行同步表单提交,因此整页重新加载,从而完全更改HTML文档。

这是完全预期的行为。您希望改为提交异步(ajax)表单。这样HTML文档保持不变。为了实现这一目标,只需在<f:ajax>内嵌套<h:commandButton>

<h:commandButton ...>
    <f:ajax execute="@form" render="@form" />
</h:commandButton>