Tag: viewexpiredexception

如何在JSF 2中处理会话到期和ViewExpiredException?

考虑以下情况。 在会话超时(过期)之后,我单击一个JSF表单的提交button。 浏览器显示一些exception消息: ViewExpiredException:视图上下文无法恢复 我想要做的是在会话过期后自动redirect到网站的主页。 这是什么机制? 任何帮助将非常感激。

检查会话是否存在JSF

我有一个login页面,我有一个用户bean来authentication一个人的用户名和密码。 这个Bean是会话作用域。 如果有人写了一个URL并尝试跳转login页面,我该如何检查并将其redirect到login页面? 另一方面。 假设我已经login,我正在工作,突然间我出去了一会儿,我的会议到期。 当我返回并尝试与表单交互时,它会发送一条消息,提醒我会话到期。 发生这种情况时,如何重新导向到login表单? 提前致谢。 希望我解释一下自己。 Mojarra 2.1.4,Tomcat 7,Tomahawk 1.1.11

如果JSF页面受j_security_check保护,则不会在Ajax请求上抛出ViewExpiredException

我有一个不受j_security_check保护的JSF页面。 我执行以下步骤: 在浏览器中打开JSF页面。 重新启动服务器。 单击JSF页面上的命令button以启动ajax调用。 如预期的那样,Firebug显示引发了一个ViewExpiredException 。 post: javax.faces.ViewState=8887124636062606698:-1513851009188353364 响应: <partial-response> <error> <error-name>class javax.faces.application.ViewExpiredException</error-name> <error-message>viewId:/viewer.xhtml – View /viewer.xhtml could not be restored.</error-message> </error> </partial-response> 但是,一旦我configuration页面被j_security_check保护并执行上面列出的相同步骤,奇怪(对我来说) ViewExpiredException不再被引发。 相反,响应只是一个新的视图状态。 post: javax.faces.ViewState=-4873187770744721574:8069938124611303615 响应: <partial-response> <changes> <update id="javax.faces.ViewState">234065619769382809:-4498953143834600826</update> </changes> </partial-response> 有人可以帮我解决这个问题吗? 我期望它会引发一个exception,所以我可以处理这个exception并显示一个错误页面。 现在,它只是响应一个新的ViewState,我的网页刚刚卡住,没有任何视觉反馈。

com.sun.faces.numberOfViewsInSession vs com.sun.faces.numberOfLogicalViews

Mojarra JSF 2的实现具有以下背景参数: com.sun.faces.numberOfViewsInSession (默认值是15) com.sun.faces.numberOfLogicalViews (默认值是15) 他们有什么区别? 这些文档没有提到这些。 我的应用程序对于某些页面的ViewExpiredException有问题,但是当我们将这些设置碰到更高的值时,我们停止了一些问题。 我的应用程序是一个财务,forms沉重,启用Ajax的应用程序(一些屏幕有50多个input,可以通过AJAX添加更多的数据/input的选项)。 什么可能是这种行为的原因? 我明白,第一个参数定义了会话中保留的“页面”的数量,这对于后退button可能是有用的,但是触发ViewExpiredException用例不使用后退button。 第二个参数是指什么? 如果我留在同一个屏幕上,但通过AJAX不断添加大量数据,这是否会导致需要大量的页面逻辑视图?

JSF / PrimeFaces ajax请求上的会话超时和ViewExpiredException处理

我发现这篇文章对于非ajax请求很有用如何在JSF 2中处理会话到期和ViewExpiredException? 但是当我使用AJAX调用提交时,我无法使用它。 假设在一个primefaces对话框中,我正在使用AJAX发送一个post请求,session已经超时了。 我看到我的页面卡住了。 如何解决这种情况,当我发布使用AJAX,我可以redirect他到我的视图过期的页面,然后转发他的login页面类似于上面的链接的解决scheme? JSF2 / Primefaces / Glassfish的

javax.faces.application.ViewExpiredException:无法恢复视图

我用容器pipe理的安全性编写了简单的应用程序。 问题是当我login并打开另一个页面,我退出,然后回到第一页,我点击任何链接等或刷新页面我得到这个exception。 我想这是正常的(或者不是:)),因为我注销和会话被销毁。 我应该怎么做redirect用户为例如index.xhtml或login.xhtml并保存他看到错误页面/消息? 换句话说,我注销后如何自动将其他页面redirect到索引/login页面? 这里是: javax.faces.application.ViewExpiredException: viewId:/index.xhtml – View /index.xhtml could not be restored. at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:212) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) at filter.HttpHttpsFilter.doFilter(HttpHttpsFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) […]