Does view scope bean survive Navigation JSF

元气小坏坏 提交于 2019-12-17 06:10:11

问题


I am quite confused with the view scope. I thought it could survive a JSF navigation to another page (no redirect, obviously), but it doesn't. So what's the advantage to use it instead of request scope, that if i summoned the same view it will be the same object?


回答1:


The advantage is that the bean survives postbacks to the same view. You don't need to preserve any data yourself anymore when used in rendered attributes or as model for h:dataTable or as hidden inputs, etcetera. In the past, a lot of hacks were been used to go around this.

A view scoped bean lives as long as you interact with the same view (i.e. you return void or null in bean action method). When you navigate away to another view, e.g. by clicking a link or by returning a different action outcome, then the view scoped bean will be trashed by end of render response and not be available in the next request.

See also:

  • Benefits and pitfalls of @ViewScoped
  • Any disadvantages of JSF 2.0?



回答2:


Ripped straight from Core JavaServer Faces, 3rd Edition:

View Scope

View scope was added in JSF 2.0. A bean in view scope persists while the same JSF page is redisplayed. (The JSF specification uses the term view for a JSF page.) As soon as the user navigates to a different page, the bean goes out of scope.
If you have a page that keeps getting redisplayed, then you can put the beans that hold the data for this page into view scope, thereby reducing the size of the session scope. This is particularly useful for Ajax applications.




回答3:


Maybe you are looking for the FlowScoped bean:

Faces Flows

The Faces Flows feature of JavaServer Faces technology allows you to create a set of pages with a scope, FlowScoped, that is greater than request scope but less than session scope. For example, you might want to create a series of pages for the checkout process in an online store. You could create a set of self-contained pages that could be transferred from one store to another as needed.



来源:https://stackoverflow.com/questions/4831888/does-view-scope-bean-survive-navigation-jsf

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!