在SpringWeb应用程序中处理会话持久性搜索表单的最佳方法是什么?

在SpringWeb应用程序中处理会话持久性搜索表单的最佳方法是什么?,spring,spring-mvc,spring-webflow,Spring,Spring Mvc,Spring Webflow,我正在寻找使用SpringMVC框架在类似“购物车”的web应用程序中处理会话持久性搜索表单的最佳方法 我希望能够从应用程序中的任何其他页面导航回此搜索页面,并设置最后一个过滤器。这不是一个主细节搜索结果页面,只是一个在下面显示的元素表上带有过滤器的表单 我可以在用户会话中存储搜索过滤器,但多选项卡导航和浏览器后退按钮处理又如何呢 我还考虑使用SpringWebflow来解决这个问题 有什么建议吗?对于WebFlow的春天来说,这听起来是个不错的工作。存储在此作用域中的对象将被保存,直到当前流终

我正在寻找使用SpringMVC框架在类似“购物车”的web应用程序中处理会话持久性搜索表单的最佳方法

我希望能够从应用程序中的任何其他页面导航回此搜索页面,并设置最后一个过滤器。这不是一个主细节搜索结果页面,只是一个在下面显示的元素表上带有过滤器的表单

我可以在用户会话中存储搜索过滤器,但多选项卡导航和浏览器后退按钮处理又如何呢

我还考虑使用SpringWebflow来解决这个问题


有什么建议吗?

对于WebFlow的春天来说,这听起来是个不错的工作。存储在此作用域中的对象将被保存,直到当前流终止(或超时)。在您的案例中使用它的通常方法是在用户开始浏览网页时创建一个新的流/对话,并将搜索参数保存在对话范围中。稍后返回搜索页面时,将从此范围中检索参数(如果有可用的参数)


对话范围解决了多选项卡问题,避免了每次数据返回服务器时都必须发送回服务器(如果只使用请求范围,则必须这样做).

您应该可以通过
@modeldattribute
结合
@SessionAttributes
来实现这一点,或者您可以简单地将搜索参数backingbean放到会话作用域中。不。。。我不喜欢“应用程序范围”的对话。恐怕他们不能解决多标签问题。如果用户开始在新选项卡中打开流链接,您将很快失去流状态历史记录,原始页面及其状态将变为无效。有趣。但是使用会话范围有更多的问题。你有什么建议?具体是什么问题?您的意思是,就像从多个选项卡中搜索时,只保留最后一次搜索?这不是我们想要的行为吗?