Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url 捕获ViewExpiredException时JSF错误重定向_Url_Jsf_Jsf 2_Viewexpiredexception - Fatal编程技术网

Url 捕获ViewExpiredException时JSF错误重定向

Url 捕获ViewExpiredException时JSF错误重定向,url,jsf,jsf-2,viewexpiredexception,Url,Jsf,Jsf 2,Viewexpiredexception,因此,我有一个ViewExpiredException处理程序,可以正常工作。 现在,当我启动web应用程序时,我的URL看起来像www.myApp.com/TestFaces/,这将显示第一个页面,即登录页面。 如果出于任何原因,我在登录时离开页面,并且视图过期,应用程序将捕获ViewExpiredException并将我发送到“ViewExpired”页面,但URL保持不变www.myApp.com/TestFaces/。在那个“ViewExpired”页面上,我有一个commandLink

因此,我有一个ViewExpiredException处理程序,可以正常工作。 现在,当我启动web应用程序时,我的URL看起来像
www.myApp.com/TestFaces/
,这将显示第一个页面,即登录页面。 如果出于任何原因,我在登录时离开页面,并且视图过期,应用程序将捕获ViewExpiredException并将我发送到“ViewExpired”页面,但URL保持不变
www.myApp.com/TestFaces/
。在那个“ViewExpired”页面上,我有一个commandLink返回到登录页面,我在attrib的值中放了“index.xhtml”,但它不会将我发送到登录页面,因为在
www.myApp.com/TestFaces/index.xhtml
上没有页面,而在
www.myApp.com/TestFaces/faces/index.xhtml

因此,问题是:

  • 如果我在登录页面,为什么会出现ViewExpiredException?是因为ajax吗
  • 如何或在何处使commandLink真正将我发送到index.xhtml
  • 只有登录页面中的视图过期时才会发生这种情况,在我的应用程序的其他页面中,这种情况非常有效

    提前谢谢

    如果我在登录页面,为什么会出现ViewExpiredException?是因为ajax吗

    当您在会话中不再存在的视图上调用POST请求时,将出现此异常。例如,当您在服务器端将页面打开太长时间以致会话已过期,或者从浏览器缓存而不是直接从服务器获取登录页面时,可能会发生这种情况。有关更多详细信息,请参见。所有jsfajax请求也都使用POST,因此它们也使用POST


    如何或在何处使commandLink真正将我发送到index.xhtml

    使用隐式导航。这样,JSF将附加适当的
    FacesServlet
    映射

    public String goToIndexPage() {
        return "index";
    }
    

    
    
    或者,更好的是,当您根本不需要调用任何业务逻辑时:

    <h:link value="Go to index page" outcome="index" />
    
    
    
    另见:
    如果我在登录页面,为什么会出现ViewExpiredException?是因为ajax吗

    当您在会话中不再存在的视图上调用POST请求时,将出现此异常。例如,当您在服务器端将页面打开太长时间以致会话已过期,或者从浏览器缓存而不是直接从服务器获取登录页面时,可能会发生这种情况。有关更多详细信息,请参见。所有jsfajax请求也都使用POST,因此它们也使用POST


    如何或在何处使commandLink真正将我发送到index.xhtml

    使用隐式导航。这样,JSF将附加适当的
    FacesServlet
    映射

    public String goToIndexPage() {
        return "index";
    }
    

    
    
    或者,更好的是,当您根本不需要调用任何业务逻辑时:

    <h:link value="Go to index page" outcome="index" />
    
    
    
    另见: