托pipebean中查看和请求范围之间的区别

视图范围是什么意思? 任何人都可以解释一下,这样我就可以理解它与请求范围的区别了吗?

@ViewScoped bean和JSF视图一样长。 它通常以新的GET请求或导航动作开始,只要最终用户在视图中将任何POST表单提交给返回nullvoid的操作方法(因此导航回相同的视图)。 一旦刷新了页面,或者返回一个非nullstring(即使是空string!)导航结果,视图范围也将结束。

@RequestScoped bean与HTTP请求一样长。 因此,每个请求结束时都会被垃圾清理,并在每个新请求上重新创build,从而丢失所有更改的属性。

因此,在丰富的支持Ajax的视图中, @ViewScoped bean特别有用,它需要记住跨Ajax请求的(改变的)视图状态。 @RequestScoped会在每个Ajax请求上重新创build,因此无法记住所有更改的视图状态。 请注意, @ViewScoped bean不会在同一会话中的不同浏览器标签页/窗口之间共享任何数据,就像@SessionScoped bean一样。 每个视图都有自己独特的@ViewScoped bean。

也可以看看:

  • 如何select合适的bean范围?
  • @ViewScoped的好处和缺陷