Как использовать IcePush для обновления дисплея клиента?
Я пытаюсь установить онлайн-игру в шашки, используя JSF2 на GlassFish 3, где вся логика игры EJB позаботится. Дело в том, что я хочу, чтобы дисплей игрока А обновлялся после хода игрока В. после того, как игрок Б закончил свой ход, я звоню
pushContext.push("groupName")
на бобе кода (пока есть <icecore:push group="groupName" />
в коде xhtml) проблема в том, что (как мне кажется) объект платы игрока А еще не был обновлен из EJB, поэтому обновлять на дисплее нечего. Отображение доски игрока А обновляется только после того, как он / она закончит свой ход (и в этот момент его код компонента запрашивает обновленную доску от EJB). Я думал, что нашел решение здесь. Мой план состоит в том, чтобы установить функцию JS внутри xhtml, к которой код компонента будет вызываться с использованием <icep:register>
тег, и эта JS-функция будет вызывать Java-функцию внутри кода компонента, которая будет запрашивать обновленную доску у EJB, а затем обновлять отображение.
дело в том, что я нигде не могу найти, как реализовать любые теги 'icep'. когда я помещаю этот тег в мой код, я получаю ошибку компиляции. Что мне нужно добавить в мой проект, чтобы это работало? или есть совершенно другой (и лучший) подход к решению моей проблемы?
ура, eRez
1 ответ
<icep:register>
является частью интеграции ICEpush JSP и предназначена только для страниц JSP, а не для страниц JSF. Возможно, именно поэтому у вас возникла проблема с компиляцией. Вы можете использовать API регистрации Javascript. Но вы смотрели на использование PortableRenderer? Если ваш ejb находится в том же jvm, это может сработать и вам будет намного проще. Проверять, выписываться:
http://wiki.icesoft.org/display/ICE/Ajax+Push+-+APIs
Спасибо Филип