Передать значение переменной сеанса с истекшим сроком в последующий запрос - PullRequest
0 голосов
/ 06 октября 2011

У меня есть приложение JSf, и пользователи вызывают это приложение с другого сайта (предположим, test.com). При вызове моего приложения с test.com оно отправляет мне параметр get и на основании этого я решаю, какую таблицу стилей нужно применить.

Пример вызова: myapp.com?style=aaa

На основе параметра стиля я применяю таблицу стилей для myapp. Здесь я нахожу таблицу стилей из значения параметра стиля и храню ее в сеансе для использования на других страницах.

Проблема:

Когда сеанс tomcat истекает, я теряю информацию о моем стиле, и мой сайт переходит на таблицу стилей по умолчанию (пользователь нажимает кнопку перезагрузки браузера или отправляет форму после истечения срока сеанса). Как я могу сохранить информацию таблицы стилей даже после истечения срока сессии.

У меня не может быть информации о стиле в качестве параметра уровня приложения, поскольку она изменяется в зависимости от вызовов test.com.

спасибо

Ответы [ 2 ]

1 голос
/ 06 октября 2011

Если вы просто хотите запомнить таблицу стилей, вероятно, было бы лучше записать параметр таблицы стилей в файл cookie, а не в HttpSession.Таким образом, когда сеанс истек, и пользователь возвращается, он все равно увидит выбранную таблицу стилей.

Однако, если они удаляют свои файлы cookie или срок их действия истекает, они получат таблицу стилей по умолчанию.

A Quick google придумала этот пример файла cookie http://gthill.blogspot.com/2008/01/cookies-in-jsf.html

0 голосов
/ 06 октября 2011

У одного пользователя может быть много логинов на myapp.com. Поэтому несколько вызовов могут поступать из одного браузера: myapp.com?style=aaa, myapp.com?style=bbb. Поэтому использование файлов cookie может быть затруднено.

Вам нужно будет передавать стиль как параметр запроса, добавляя его как <f:param> к всем формам и ссылкам на всех ваших страницах JSF.

1012 * Е.Г. *

<h:link value="link" outcome="nextpage">
    <f:param name="style" value="#{param.style}" />
</h:link>

и

<h:commandButton value="submit" action="#{someBean.someAction}">
    <f:param name="style" value="#{param.style}" />
</h:commandButton>      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...