使用h:按钮时,除去URL中的jsessionid = xxx路径参数

时间:2013-06-27 15:09:54

标签: jsf-2 omnifaces jsessionid

我在Tomcat7和JSF 2.1中使用OmniFaces FullAjaxExceptionHandler来处理ViewExpiredException。我设置了与OmniFaces展示相同的错误页面。 Look here for error pageshere for template

工作正常。会话过期后,我最终进入expired.xhtml错误页面。但是,当我单击错误页面中的以下链接时,

 <p><a href="#{requestScope['javax.servlet.error.request_uri']}">Back to initial page.</a></p>

然后我得到以下异常:

com.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean 

这不是一个大问题。无论如何,我需要一个将用户指向主页的按钮。所以我用下面的按钮取代了它:

<h:button value="Home" outcome="logout" />

以及此导航案例:

<navigation-rule>
    <from-view-id>*</from-view-id>
    <navigation-case>
        <from-outcome>logout</from-outcome>
        <to-view-id>/stdPortal/index.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>

导航将我带到了正确的页面,但会话ID显示在URL中:

https://localhost/stdPortal/index.xhtml;jsessionid=B68784B4ED8882A6575A2EE4012AF1B5

我不想要这个。我怎么摆脱它?我希望网址如下:

https://localhost/stdPortal/index.xhtml

1 个答案:

答案 0 :(得分:8)

您可以通过将以下内容添加到jsessionid来删除网址中的web.xml路径片段:

<session-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>

它基本上禁用了URL-rewriting