我正在使用主模板(即<ui:composition template>
/ <ui:define>
),其中左侧是导航面板,中间是内容面板。当我转到@ViewScoped
的某个页面时,我会编辑一些字段,转到另一个重新加载内容区域的页面,然后返回到原始页面,并且所有字段都仍然填充了数据。这意味着视图永远不会结束。我尝试@RequestScoped
产生了我想要的结果,但打破了与该bean相关的页面中的所有ajax。
答案 0 :(得分:0)
通过使用支持bean导航页面内容,ui:include由ajax更新,所有在同一页面中,JSF的当前视图永远不会超出范围,这就是为什么后台ViewScoped bean在导航后永远不会重置的原因
一个可能的解决方法是重新设计页面以使用传统导航。换句话说,假设你有几个p:menuitems。不是将actionListener分配给设置内容页面的某个支持bean函数(后面是包含ui:include的面板的更新),而是将每个menuitem的“action”设置为每个菜单项对应的页面。这会导致在单击菜单项时加载页面。
这产生了一个要求,即我必须稍微重新组织我的模板,以便我的网站的每个页面都嵌入其中。整个页面重新加载时会有一点点闪烁,但bean会相应地重置。