0

我有一个显示目录中文件夹的页面。它就像 Windows 资源管理器一样工作,但我的页面使用数据表显示文件夹。当用户通过单击文件夹名称深入到文件夹时,我将重新显示同一页面,但会显示一个带有新数据的支持 bean 的新实例。back bean 是一个 View 作用域的 bean。它是使用 Spring 的自定义 View 范围的 Spring 托管 bean,而不是 JSF 托管 Bean。当我使用浏览器返回按钮返回此页面时,浏览器发出 GET 请求以重新呈现页面。

问题是在浏览器后面,我希望页面呈现与我所在的最后一个文件夹有关的数据,而不是当前文件夹。目前,当我点击浏览器后退按钮时,会创建一个新的 bean 实例,并使用当前文件夹(保存在 Session 中)对其进行初始化。我希望我的 View 范围 bean 可以在后退按钮提交时恢复(即不是新的实例创建),但我意识到这可能是不可能的,因为它是 Spring 托管的 bean。关于如何将 bean 与页面上的 viewId 一起缓存,或者切换到使用 JSF 托管 bean 有什么想法吗?如果可能的话,我更喜欢前一种方法,但我很想知道后一种方法是否可行。

4

1 回答 1

1

这完全按设计工作。

如果要处理基于请求的参数,则应在 URL 中提供请求参数。例如page.xhtml?folder=foo。您可以使用<h:link><f:param>参数创建链接,也可以将<f:viewParam>其设置为 bean 属性。

也可以看看:

于 2013-03-13T19:45:19.423 回答