我在JSF应用程序中创建了一个WebSocket。它工作正常,但是当我使用<h:commandButton action="#{bean.something}">
调用JSF bean操作时,它会重新启动WebSocket连接。
有没有办法实现这两种类型的连接而不会互相干扰?
答案 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>