Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Использование Ajax с веб-сокетами

Если вы хотите выполнять сложные обновления пользовательского интерфейса в зависимости от полученного push-сообщения, вы можете вложить тег f:ajax в тег f:websocket. Смотрите следующий пример:

<h:panelGroup id="foo">
... (some complex UI here) ...
</h:panelGroup>
<h:form>
<f:websocket channel="someChannel" scope="view">
<f:ajax event="someEvent"
listener="#{bean.pushed}" render=":foo" />
</f:websocket>
</h:form>

Здесь push-сообщение просто представляет имя события ajax. Вы можете использовать любое произвольное имя события.

someChannel.send("someEvent");

Альтернативой является объединение тега f:websocket с тегом h:commandScript. <f:websocket onmessage> в точности ссылается на <h:commandScript name>.

Например:

<h:panelGroup id="foo">
... (some complex UI here) ...
</h:panelGroup>
<f:websocket channel="someChannel" scope="view"
onmessage="pushed" />
<h:form>
<h:commandScript name="pushed"
action="#{bean.pushed}" render=":foo" />
</h:form>

Если вы передадите Map<String, V> или JavaBean в качестве объекта push-сообщения, то все записи или свойства будут прозрачно доступны в качестве параметров запроса в методе сценария #{bean.pushed}.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)