【问题标题】:JSFViewExpiredException handling from web.xml is not working来自 web.xml 的 JSFViewExpiredException 处理不起作用
【发布时间】:2014-01-18 18:40:25
【问题描述】:

我正在学习 j2ee,并从一个简单的登录和注销应用程序开始。我想在会话超时时优雅地处理 javax.faces.application.ViewExpiredException。看了几篇帖子,我尝试使用下面的 web.xml 来处理它。

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/index.xhtml</location>
</error-page>

但是,这仍然会导致后端出现相同的异常。以下是我为重现问题而重复的步骤:

  1. 从 index.xhtml 登录。这将用户登陆到welcome.xhtml,并带有一个用于注销的h:commandbutton
  2. 让会话过期
  3. 单击注销按钮。如果会话已过期,则应将用户重定向到 index.xhtml

知道我缺少什么吗?根据我对许多帖子的阅读,这似乎是正确的方法。

【问题讨论】:

    标签: jsf session web.xml viewexpiredexception


    【解决方案1】:

    这不起作用,因为 ViewExpiredException 在 JSF 中被包裹在 ServletException 中。

    您可以尝试两种不同的解决方案:

    1- web.xml 带有 ServletException

    <error-page>
        <exception-type>javax.faces.application.ServletException</exception-type>
        <location>/index.xhtml</location>
    </error-page>
    

    2- faces-config.xml

    <error-page>
        <exception-type>javax.faces.application.ViewExpiredException</exception-type>
        <location>/index.xhtml</location>
    </error-page>
    

    【讨论】:

      猜你喜欢
      • 2016-10-21
      • 2015-02-01
      • 2017-04-23
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多