Session 如果我丢失了JSF会话范围,我想更改到登录页面

Session 如果我丢失了JSF会话范围,我想更改到登录页面,session,jsf-2,Session,Jsf 2,我使用了JSF2.2Mojarra和会话范围 一段时间后,会话作用域为delete或其他内容。如果我返回到登录页面并再次登录,我会有一个新的会话范围,并且一切都会恢复正常 如果我在web应用程序上工作,会话范围就不会丢失,而且我没有问题。因此,我认为如果我不使用web应用程序,它一定会在一段时间后丢失 如果我丢失了会话作用域,您知道如何自动返回登录页面吗?要想第一次看到它,您的状态保存方法应该设置为服务器,如下所示 <context-param> <par

我使用了JSF2.2Mojarra和会话范围

一段时间后,会话作用域为delete或其他内容。如果我返回到登录页面并再次登录,我会有一个新的会话范围,并且一切都会恢复正常

如果我在web应用程序上工作,会话范围就不会丢失,而且我没有问题。因此,我认为如果我不使用web应用程序,它一定会在一段时间后丢失


如果我丢失了会话作用域,您知道如何自动返回登录页面吗?

要想第一次看到它,您的状态保存方法应该设置为服务器,如下所示

    <context-param>
       <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
       <param-value>server</param-value>
    </context-param>  
请查看此问题以正确实施空闲监视器

如果您使用的是icefaces,请访问以下链接

你也可以使用omnifaces FullAjaxExceptionHandler,请用谷歌搜索


希望这有帮助

您可以在web.xml+中设置与会话超时相关的值。您可以使用筛选器在会话超时后自动重定向到登录页面。谢谢。你有一个示例代码吗?或者链接到一个例子?我的过滤器比你需要的更复杂。在ViewExpiredException之后尝试安装重定向。也许够了,谢谢。我认为理想的监测仪对我的问题有好处。我在我的页面中编辑这个,然后得到idleDialog。如果我点击这个对话框,我看起来好像它能工作。但我不会改到登录页面。我测试了这个问题,并给出了反馈,如果它的工作
     <session-config>
        <session-timeout>20</session-timeout>
     </session-config>  
    <error-page>  
        <exception-type>javax.faces.application.ViewExpiredException</exception-type>  
        <location>your login page path</location>
    <error-page>  
     <application> 
     <el-resolver>       org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver</el-resolver>
</application>

    <factory>
      <exception-handler-factory>org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory</exception-handler-factory> 
     </factory>   
           <p:idleMonitor timeout="6000" onidle="idleDialog.show()" />