浏览范围bean是否存活导航JSF

我对视图范围很困惑。 我认为它可以幸免于一个JSF导航到另一个页面(显然不redirect),但它不。 那么使用它有什么好处,而不是请求范围,如果我召唤相同的观点,它将是同一个对象?

它的优势在于,豆类能够以相同的观点生存。 在rendered属性中使用或者作为h:dataTable模型或者作为隐藏的input等时,您不必再保留任何数据。 过去,很多黑客已经习惯了这个。

视图范围的bean只要与相同的视图进行交互(即,您在bean操作方法中返回voidnull ),就会生存。 当您转到另一个视图时,例如通过单击链接或返回不同的操作结果,视图范围的bean将在呈现响应结束时被抛弃,并且在下一个请求中不可用。

也可以看看:

  • @ViewScoped好处和缺陷
  • JSF 2.0的任何缺点?

Core JavaServer Faces,第3版直接拆分:

查看范围

视图范围被添加到JSF 2.0中。 在重新显示相同的JSF页面的同时,视图范围内的bean仍然存在。 (JSF规范使用术语视图来表示JSF页面。)只要用户导航到不同的页面,该bean就会超出范围。
如果您有一个页面不断重新显示,那么可以将包含此页面数据的bean放入视图范围,从而减小会话范围的大小。 这对Ajax应用程序特别有用。

也许你正在寻找FlowScoped bean:

面孔stream动

JavaServer Faces技术的Faces Flowsfunction允许您创build一个范围为FlowScoped的页面集,该范围大于请求范围但小于会话范围。 例如,您可能希望为在线商店中的结帐过程创build一系列页面。 您可以创build一组自我包含的页面,可以根据需要从一个商店转移到另一个商店。