我有一个页面显示目录中的文件夹。它的工作方式与Windows资源管理器类似,但我的页面使用数据表显示文件夹。当用户通过单击文件夹名称钻入文件夹时,我将重新显示相同的页面,但是使用新数据的支持bean的新实例。后bean是一个View范围的bean。它是一个使用Spring自定义View范围的Spring托管bean,而不是JSF Managed Bean。当我使用浏览器后退按钮返回此页面时,浏览器会发出GET请求以重新呈现页面。
问题是在浏览器上,我希望页面呈现与我所在的LAST文件夹有关的数据,而不是当前文件夹。目前,当我点击浏览器后退按钮时,会创建一个新的bean实例,使用当前文件夹初始化自己(保存在Session中)。我希望我的View scoped bean可以在后退按钮提交时恢复(即不是新的实例创建)但我意识到这可能是不可能的,因为它是一个Spring托管bean。有没有关于如何将bean与viewId一起缓存在页面上的想法,或者将切换到使用JSF Managed bean有所作为。如果可能的话,我更喜欢前一种方法,但我很想知道后一种方法是否有效。
答案 0 :(得分:1)
这完全按照设计工作。
如果您想处理基于请求的参数,那么您应该在URL中提供请求参数。例如。 page.xhtml?folder=foo
。您可以使用<h:link><f:param>
创建与params的链接,您可以使用<f:viewParam>
将其设置为bean属性。