标签: viewexpiredexception

jsf登录超时

好的简单问题.我有一个JSF应用程序,包含一个登录页面.问题是如果用户加载登录页面,离开它一段时间,然后尝试登录会话过期并抛出ViewExpiredException.当发生这种情况时,我可以重定向回登录,但这不是很顺利.如何在没有额外尝试的情况下允许此流程正确登录?

jsf login viewexpiredexception

4
推荐指数
1
解决办法
4318
查看次数

根据当前视图处理ViewExpiredException

我在我的项目中使用JSF 2.0和Primefaces.

我有两个xhtml页面,即Cars.xhtml和Bikes.xhtml.

我正在使用ViewScoped支持bean.

目前如果从两个页面中的任何一个获取视图过期异常,我将在web.xml中处理它.通过error-page标签并指向welcome.xhtml.

现在,如果我从Bikes.xhtml获得一个viewexpired异常,我需要指向另一个页面,即BikesHome.xhtml而不是welcome.xhtml.

如果异常来自Cars.xhtml,则应显示welcome.xhtml.

请帮我怎么做.

jsf primefaces jsf-2 viewexpiredexception

3
推荐指数
1
解决办法
7572
查看次数

使用@ViewScoped时出现ViewExpiredException

我的h有问题:commandButton"登录":当我使用@ViewScoped并按下此按钮时会出现ViewExpiredException,但是当我使用@SessionScoped时,没有任何错误.

堆栈跟踪:

javax.faces.application.ViewExpiredException: /pages/register.xhtmlNo saved view state could be found for the view identifier: /pages/register.xhtml
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:132)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Run Code Online (Sandbox Code Playgroud)

我的页面:

            <h:form>
                <h:panelGrid columns="2" >
                    <h:outputLabel value="Login:"/>
                    <h:inputText value="#{registerController.registerLog}"/>
                    <h:outputLabel value="#{msg.password}"/>
                    <h:inputSecret id="pass" …
Run Code Online (Sandbox Code Playgroud)

jsf myfaces jsf-2 viewexpiredexception view-scope

3
推荐指数
1
解决办法
9948
查看次数

ViewExpiredException,页面无法恢复

我尝试关注有关如何ViewExpiredException在 GlassFish 3.1 上处理 Mojarra 2.1.0(使用 RichFaces 4)中的不同帖子。但我定义的内容web.xml似乎没有任何效果。我使用表单基础安全性,用户必须登录才能访问内容。我只希望 Glassfish (catalina) 在会话超时时将用户重定向到一个简单的 JSF 页面,并提供返回登录页面的链接。

我总是收到以下错误消息;

javax.faces.application.ViewExpiredException: viewId:/app_user/activity/List.xhtml - View /app_user/activity/List.xhtml could not be restored.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:202)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:113)
Run Code Online (Sandbox Code Playgroud)

当用户会话超时并在服务器日志中捕获异常时,我可以向谁重定向用户?

问候,克里斯。

布局.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:rich="http://richfaces.org/rich">

    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <!-- Had no effect
        <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
        <meta http-equiv="Pragma" content="no-cache" />
        <meta http-equiv="Expires" content="0" />
        -->      
        <h:outputStylesheet name="css/default.css"/>
        <h:outputStylesheet name="css/cssLayout.css"/>

        <title> …
Run Code Online (Sandbox Code Playgroud)

session glassfish jsf-2 viewexpiredexception jakarta-ee

2
推荐指数
1
解决办法
2万
查看次数

JSF视图状态何时到期?

我相信以下是真的

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

我不知道

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

谢谢

相关:

jsf-2 viewexpiredexception

2
推荐指数
1
解决办法
6307
查看次数