JSF视图状态何时到期?

时间:2013-10-14 12:03:59

标签: jsf-2 viewexpiredexception

我相信以下是真的

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

我不知道

  1. 视图状态不再可用的原因是什么(eexcept session timeout)?
  2. 是否有任何时间值可配置为控制视图状态超时?
  3. 谢谢

    相关

1 个答案:

答案 0 :(得分:6)

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

  1.   

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

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

  2.   

    是否有任何时间值可以配置为控制视图状态超时?

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