我们都知道,通过在诸如<组件之类的组件上使用一些聪明的AJAX更新,可以使用JSF 2编写单页应用程序。 h:panelGroup>。
此处示例: Single Page Applications with JSF
但是,我想知道是否可以将SPA方法与JSF 2中的对话范围一起使用。
据我所知,Conversation Scope依赖于" cid"附加到URL查询字符串的参数,用于在会话中定位正确的会话,这隐含意味着它只支持"传统"多页导航,带有完整的GET或POST请求,可以加载新的xhtml页面。
有没有办法支持SPA方法和会话范围? 换句话说,当使用新的facelet片段更新屏幕上的面板时,对Concoation Scoped bean的引用应仍然引用同一个实例,而不是创建一个新实例(因为缺少" cid&# 34; URL中的参数)
提前多多感谢!
答案 0 :(得分:0)
问题解决了!!事实证明,在尝试开始对话时出现了错误。我们正在检查(! conversation.isTransient())( false )而不是true,以确定 conversation.begin()是否应该是执行。在解决了这个笨拙的错误后,即使使用SPA导航,Conversation Scoped bean也开始按预期运行。惊人的!