2013-06-27 3 views
3

Я использую OmniFacesFullAjaxExceptionHandler в Tomcat7 и JSF 2.1 для обработки ViewExpiredException. Я установил те же страницы ошибок, что и витрина OmniFaces. Look here for error pages и here for template.Избавьтесь от параметра jsessionid = xxx path в URL-адресе при использовании кнопки h:

Он отлично работает. Когда сеанс истек, я заканчиваю страницу с ошибкой 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> 

Навигационная взял меня на нужную страницу, однако идентификатор сеанса появляется в URL:

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

Я не хочу этого. Как я могу избавиться от него? Я хочу URL быть похожим:

https://localhost/stdPortal/index.xhtml 

ответ

7

Вы можете избавиться от jsessionid фрагмента пути в URL, добавив следующее web.xml:

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

Это в основном отключает URL-rewriting.

+0

@ BalusC, как обычно, гений. Вы всегда понимаете проблему и обеспечиваете идеальное решение. Не зная, что они должны искать «фрагмент фрагмента jsessionid», я не смог найти решение. Почему jsession хранится в url является TomcatBug или представляет собой некоторую техническую проблему. – user1594895

+1

Фрагмент 'jsessionid' будет добавлен к URL-адресам, если новый сеанс был установлен во время ответа. Необходимо также увеличить размер буфера ответа до того же размера, что и ваша самая большая страница. – BalusC

 Смежные вопросы

  • Нет связанных вопросов^_^