jsf - 托管 bean 中的 View 和 Request 范围之间的区别

标签 jsf jsf-2

View 范围是什么意思?谁能解释一下,以便我能够理解它与请求范围有何不同?

最佳答案

@ViewScoped bean 的生命周期与 JSF View 的生命周期完全相同。它通常以全新的 GET 请求或导航操作开始,然后只要最终用户将 View 中的任何 POST 表单提交到返回 null 的操作方法,它就会存在void(从而导航回相同 View )。一旦刷新页面,或返回非 null 字符串(甚至是空字符串!)导航结果, View 范围就会结束。

@RequestScoped bean 的生命周期与 HTTP 请求的生命周期完全相同。因此,它将在每个请求结束时被丢弃,并在每个新请求时重新创建,从而丢失所有更改的 bean 属性。

因此,@ViewScoped bean 在支持 Ajax 的丰富 View 中尤其有用,这些 View 需要记住跨 Ajax 请求的(已更改的)bean 属性。 @RequestScoped 会在每个 Ajax 请求上重新创建,因此无法记住所有更改的 bean 属性。请注意,@ViewScoped bean 不会像 @SessionScoped bean 那样在同一 session 中的不同浏览器选项卡/窗口之间共享任何数据。每个 View 都有自己独特的@ViewScoped bean。

另请参阅:

关于jsf - 托管 bean 中的 View 和 Request 范围之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6025998/

相关文章:

JSF Facelet 应用程序无法在 jboss AS 7 中工作

css - selectonemenu jsf 上的属性

java - 登录后重定向不起作用(jsf-glassfish)

javascript - 如何动态地将焦点设置到ui中的下一个文本框:repeat

java - 在网站上存储用户首选项的最佳方式?(不仅仅是字符串条目)

jsf - 如何动态构建back bean编辑表单

eclipse - EL 标签未渲染

javascript - 如何在显示对话框时暂时禁用网页滚动?

java - JSF 我需要用 StringArray 填充 selectItems 但我需要先解析它

java - WildFly 仅返回文件名