我理解t:saveState
允许请求范围bean持久的时间超过请求范围允许但比会话范围bean短。您还可以在整个bean上使用t:saveState
。
所以我的问题是,如果你在整个bean上使用t:saveState
,那么使用t:saveState
而不是在会话范围内配置Bean有什么好处?
同样在什么条件下你创建bean请求范围并使用T:saveState而不是使bean会话范围与?
谢谢
答案 0 :(得分:2)
只要视图存在,<t:saveState>
引用的bean就会存在。它与新的JSF 2.0视图范围基本相同。
当您处理数据时,只要您通过在操作方法上返回null
或void
来与同一视图进行交互,这就非常有用。如果您已经使用了会话范围,那么多个视图(同一会话中的多个浏览器窗口/选项卡)将共享相同的数据。当最终用户在多个浏览器选项卡/窗口中与页面交互并在它们之间切换时,这可能具有不希望的副作用。在一个选项卡中完成的所有更改都将反映在另一个选项卡中。
会话范围绝对应仅用于实际会话范围数据,例如登录用户,其首选项,语言等,可以在同一会话中的多个浏览器窗口/选项卡之间安全地共享。