0

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

pushContext.push("groupName")

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

干杯,埃雷兹

4

1 回答 1

0

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

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

谢谢,菲利普

于 2012-03-28T12:47:30.567 回答