这是用于 JSF 2.0 的 MyFaces CODI JSF-Module v1.0.1
我有一个使用@ViewAccessScoped 后备bean 的JSF 页面,它几乎可以满足我的要求,只是在我完成后它不会消失。该页面是从另一个页面调用的,如下所示:
<h:link outcome="/editLocation" target="_blank"
value="Edit Location: #{maintLocation.selected.id}"
disabled="#{!maintLocation.rowSelected}">
<f:param name="locationID" value="#{maintLocation.selected.id}" />
<f:param name="closeOnUpdate" value="true" />
</h:link>
用户体验是editLocation页面在新窗口或新选项卡中弹出,用户对其进行编辑,如果closeOnUpdate参数设置为 true ,则在完成时调用window.close() 。
这一切都有效。但是,如果用户编辑另一个位置,ViewAccessScoped bean 仍然存在,因此它不会被重新实例化。因此,它永远不会看到参数,而只是根据先前的记录得出它所处的状态。
通过手动擦除浏览器 URL 窗口中的windowid参数,我可以获得一个新的支持 bean。有没有办法从h:link组件中删除它?
或者,有没有办法让bean在点击完成按钮后将自己从它所在的范围中移除?