2

我相信以下是真的

  • 如果javax.faces.STATE_SAVING_METHOD设置为client,则视图永不过期
  • aViewExpiredException将被抛出
    • 如果javax.faces.STATE_SAVING_METHOD设置为server 并且视图状态不可用
    • 当会话被销毁时(因为会话中保存的所有视图在逻辑上也会同时过期)
    • 当为com.sun.faces.clientStateTimeout设置了一个值(默认为 NONE)并且请求之间的时间超过了这个配置的时间

我不知道

  1. 视图状态不再可用的原因是什么(会话超时除外)?
  2. 是否可以配置任何时间值来控制视图状态超时?

谢谢你

相关

4

1 回答 1

6

您的问题的答案在您发布的链接中。我会在这里为你提炼出来:

  1. 视图状态不再可用的原因是什么(会话超时除外)?

    每个会话将持有许多视图状态项。如果需要添加新的视图状态对象,则使用最近最少使用算法从视图状态映射中删除视图状态对象的预先存在的实例。这是导致给定视图状态对象过期的唯一其他原因(我知道)。请记住,这只影响存储在视图状态映射中的特定视图状态对象,而不影响整个映射

  2. 是否可以配置任何时间值来控制视图状态超时?

    根据我的研究,我在提供此功能的规范或实现中都看不到上下文参数。所以目前,控制视图状态超时的唯一方法是控制会话超时

于 2013-10-15T00:58:30.307 回答