视图范围bean在JSF导航中存活吗

视图范围bean在JSF导航中存活吗,jsf,jsf-2,Jsf,Jsf 2,我对视图范围感到很困惑。我认为它可以在JSF导航到另一个页面(显然没有重定向)后存活下来,但事实并非如此。因此,使用它而不是请求范围有什么好处,如果我调用相同的视图,它将是相同的对象?直接从以下内容中删除: 视图范围 视图范围是在JSF2.0中添加的。视图中的bean作用域保持不变,而视图中的bean作用域保持不变 重新显示JSF页面。(JSF规范对JSF页面使用术语视图。) 一旦用户导航到另一个页面,bean就会超出范围。 如果你有一个不断被重新显示的页面,那么你可以把bean 将此页面的数据

我对视图范围感到很困惑。我认为它可以在JSF导航到另一个页面(显然没有重定向)后存活下来,但事实并非如此。因此,使用它而不是请求范围有什么好处,如果我调用相同的视图,它将是相同的对象?

直接从以下内容中删除:

视图范围 视图范围是在JSF2.0中添加的。视图中的bean作用域保持不变,而视图中的bean作用域保持不变 重新显示JSF页面。(JSF规范对JSF页面使用术语视图。) 一旦用户导航到另一个页面,bean就会超出范围。
如果你有一个不断被重新显示的页面,那么你可以把bean 将此页面的数据保留在视图范围内,从而减小 会话范围。这对于Ajax应用程序特别有用


这样做的好处是,bean能够在回发到相同的视图后生存下来。在
rendered
属性中使用时,或者作为
h:dataTable的模型使用时,或者作为隐藏输入使用时,您不再需要自己保存任何数据。在过去,许多黑客被用来绕过这个问题

只要与相同的视图交互(即在bean操作方法中返回
void
null
),视图范围的bean就会存在。当您导航到另一个视图时(例如,通过单击链接或返回不同的操作结果),视图范围的bean将在渲染响应结束时被丢弃,在下一个请求中不可用

另见:

    • 也许您正在寻找流式范围的bean:

      JavaServer Faces技术的Faces Flows功能允许您创建一组页面,其作用域为FlowScope,大于请求作用域,但小于会话作用域例如,您可能希望为在线商店中的结账流程创建一系列页面。您可以创建一组自包含页面,这些页面可以根据需要从一家商店转移到另一家商店


      非常感谢巴卢斯的回答我知道为什么我的怪胎豆子会被重新连接我的豆子。。。。谢谢@BalusC:如果客户端长时间没有交互,viewscoped bean何时会被销毁有时间限制吗?&另外,如果用户通过单击当前选项卡中的链接导航到另一个选项卡中的链接,同时保持当前选项卡的活动状态,ViewScope bean将被销毁,对吗?@Raj:不。它将只创建另一个。我的理解是,只有使用POST导航到其他页面时,视图范围才会被销毁。如果在浏览器中键入新URL、单击定位标记或其他获取方式,则视图范围将保留。显然,在Mojarra中有一个默认的15个视图队列。无论如何,这表明JSF中的导航应该始终使用POST(带有重定向GET),以避免视图范围在过期之前一直挂起!对于“如何以及何时在JSF中销毁视图范围bean”这一问题,可能是相关的。