【问题标题】:how to use IcePush to update client's display?如何使用 IcePush 更新客户端的显示?
【发布时间】:2012-03-22 14:44:32
【问题描述】:

我正在尝试设置一个在线跳棋游戏,在 GlassFish 3 上使用 JSF2,其中所有游戏的逻辑都由 EJB 处理。 问题是我希望玩家 A 棋盘的显示在玩家 B 移动后得到更新。在玩家B完成他/她的动作后,我正在打电话

pushContext.push("groupName")

在代码的 bean 上(虽然有 <icecore:push group="groupName" /> xhtml 代码中的标记) 问题是(在我看来)玩家 A 的棋盘对象尚未从 EJB 更新,因此显示器上没有任何更新。玩家 A 的棋盘显示仅在他/她完成他/她的移动后更新(此时其 bean 代码要求从 EJB 更新棋盘)。 我以为我找到了解决方案here。我的计划是在 xhtml 中设置一个 JS 函数,bean 代码将使用 <icep:register> 标记调用该函数,并且该 JS 函数将在 bean 代码中调用一个 java 函数,该函数将要求从 EJB 获取更新的板然后会更新显示。
问题是我在任何地方都找不到如何实现任何“icep”标签。当我将此标签放入我的代码中时,我得到一个编译错误。 我需要在我的项目中添加什么才能使其正常工作? 还是有完全不同(更好)的方法来解决我的问题?

干杯, 埃雷兹

【问题讨论】:

标签: ajax jsf-2 icepush


【解决方案1】:

<icep:register> 是 ICEpush JSP 集成的一部分,仅用于 JSP 页面,而不是 JSF 页面。所以这可能就是你遇到编译问题的原因。您可以使用 javascript 注册 api。但是您是否考虑过使用 PortableRenderer?如果您的 ejb 在同一个 jvm 中,这可能会工作并且对您来说容易得多。签出:

http://wiki.icesoft.org/display/ICE/Ajax+Push+-+APIs#AjaxPush-APIs-PushingfromoutsidetheJSFcontext

谢谢, 菲利普

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 2012-03-25
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多