2014-01-23 7 views
1

Я создал WebSocket в приложении JSF. Он работает нормально, но когда я вызываю действие компонента JSF с использованием <h:commandButton action="#{bean.something}">, он перезапускает соединение WebSocket.Удерживайте соединение WebSocket на текущей странице, когда вызывается действие кнопки команды.

Есть ли способ реализовать эти 2 типа соединений, не прерывая друг друга?

ответ

2

<h:commandButton> компонент JSF генерирует HTML <input type="submit"> элемента, который выполняет по умолчанию используется синхронное формы представить, который имеет, как следствие, к полной перезагрузке страницы и, таким образом, полное изменение HTML документа.

Это вполне ожидаемое поведение. Вы хотите вместо асинхронной формы (ajax). Таким образом, HTML-документ остается тем же. Чтобы достичь этого, просто вставьте <f:ajax> внутри <h:commandButton>.

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