JSF视图状态何时到期?

jim*_*ndy 2 jsf-2 viewexpiredexception

我相信以下是真的

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

我不知道

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

谢谢

相关:

kol*_*sus 6

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

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

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

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

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