我正在使用 JSF RI 1.1。如果 session 超时如何重定向到索引页面?
最佳答案
有两种方法可以组合使用:
利用
<meta>
刷新 HTML 中的 header<head>
元素与HttpSession#getMaxInactiveInterval()
结合它返回 session 尚未存活的剩余秒数。<meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval};url=index.jsf">
此方法会自动将页面重定向到给定的
url
当 session 过期时。捕获
ViewExpiredException
在web.xml
:<error-page> <exception-type>javax.faces.application.ViewExpiredException</exception-type> <location>/index.jsf</location> </error-page>
此方法会自动将请求转发到给定的
<location>
当POST
当 session 过期时,请求已被触发(h:commandButton
、h:commandLink
等)。
请注意,我个人更喜欢中间的“ session 过期”警告页面或警报以避免“wtf?”体验,从而提高用户体验。更重要的是,当客户端通过监听 click
显示事件时,我宁愿每分钟触发一次 ajaxical 轮询。和keypress
,以便 session 的生命周期可以推迟更多。
关于jsf - 如果jsf应用程序中发生 session 超时,如何重定向到索引页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2543094/