我正在尝试设置一个在线跳棋游戏,在EJB3上使用JSF2,其中所有的游戏逻辑都由GlassFish负责。问题是,我希望玩家A的棋盘在玩家B移动后更新显示。在玩家B完成他/她的移动后,我会打电话给
pushContext.push("groupName")在代码的bean上(虽然在xhtml代码中有<icecore:push group="groupName" />标记),问题是(在我看来)玩家A的棋盘对象还没有从EJB更新,所以在显示上没有什么需要更新的。玩家A的棋盘显示只有在他/她完成他/她的移动之后才会更新(此时,它的bean代码向EJB请求一个更新的棋盘)。我以为我找到了解决方案here。我的计划是在xhtml中设置一个JS函数,bean代码将使用<icep:register>标记调用该函数,该JS函数将在bean代码中调用一个java函数,该函数将从EJB请求更新的电路板,然后更新显示。
问题是我在任何地方都找不到如何实现任何'icep‘标签。当我把这个标签放到我的代码中时,我得到一个编译错误。我需要在我的项目中添加什么才能正常工作?或者有一种完全不同的(更好的)方法来解决我的问题?
干杯,eRez
发布于 2012-03-28 20:47:31
<icep:register>是JSF集成的一部分,仅用于ICEpush页面,而不是JSF页面。这可能就是你遇到编译问题的原因。您可以使用javascript注册api。但是你有没有考虑过使用PortableRenderer?如果您的ejb在同一个jvm中,那么这对您来说可能会工作得更容易。查看:
http://wiki.icesoft.org/display/ICE/Ajax+Push+-+APIs#AjaxPush-APIs-PushingfromoutsidetheJSFcontext
谢谢,菲利普
https://stackoverflow.com/questions/9824578
复制相似问题