I'm using OmniFaces FullAjaxExceptionHandler
in Tomcat7 and JSF 2.1 to handle the ViewExpiredException
. I've setup the same error pages as OmniFaces showcase. Look here for error pages and here for template.
It works fine. When the session is expired, then I end up in expired.xhtml
error page. However, when I click the below link in the error page,
<p><a href="#{requestScope['javax.servlet.error.request_uri']}">Back to initial page.</a></p>
then I get the following exception:
com.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean
This is not a big problem. I need a button that points the user to the home page anyway. So I replaced it by the below button:
<h:button value="Home" outcome="logout" />
along with this navigation case:
<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>
The navigation took me to the correct page, however the session ID appears in the URL:
https://localhost/stdPortal/index.xhtml;jsessionid=B68784B4ED8882A6575A2EE4012AF1B5
I don't want this. How do I get rid of it? I want the URL to be like:
https://localhost/stdPortal/index.xhtml
You can get rid of jsessionid
path fragment in URL by adding the following to web.xml
:
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
It basically disables URL-rewriting.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With