如何使用IcePush更新客户端的显示?

时间:2012-03-22 14:44:33

标签: ajax jsf-2 icepush

我正在尝试在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'标签。当我把这个标签放入我的代码时,我得到一个编译错误。 我需要添加到我的项目中才能使其工作? 还是有一种完全不同(更好)的方法来解决我的问题?

欢呼声, 埃雷兹

1 个答案:

答案 0 :(得分:0)

<icep:register>是ICEpush JSP集成的一部分,仅适用于JSP页面,而不是JSF页面。这可能就是你得到编译问题的原因。您可以使用javascript注册api。但是你看过使用PortableRenderer了吗?如果你的ejb在同一个jvm中,这可能会起作用并且对你来说更容易。退房:

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

谢谢, 菲利普