2013-05-10 3 views
1

У меня есть файл index.xhtml, который является целевой страницей моего приложения.Выйти с любой страницы на индексную страницу

У меня есть кнопка выхода из системы, которая вызывающую следующий метод:

public String logout() { 
    FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); 
    return "logout"; 
} 

который в свою очередь вперед на index.xhtml страницу с faces-config.xml. Однако, когда я нахожусь на выходе и вы попадаю на страницу index.xhtml, страница искажается, без каких-либо css или каких-либо проектов.

Где я ошибаюсь?

ответ

1

Канонический подход заключается в отправке перенаправления после недействительности сеанса, иначе старые переменные сеанса все еще присутствуют в ответе текущего запроса.

При условии, что вы используете старомодные JSF навигации дела, просто добавив

<redirect /> 

к навигационному случае следует делать.

Однако, что вы получили ExternalContext#invalidateSession() для компиляции означает, что вы используете JSF 2.x. В этом случае, вы можете просто использовать его неявное навигационное средство без необходимости для навигации случай шаблонного:

return "/index.xhtml?faces-redirect=true"; 

Если это все еще не удалось устранить проблему, то это, скорее всего, вызвано доморощенным сервлет фильтр который чрезмерно блокирует ресурсы CSS (и JS и изображения), а также когда пользователь не зарегистрирован. Но эта проблема не была бы связана с функцией выхода из системы, у вас уже была бы такая же проблема, даже если она не была зарегистрирована вообще.

+0

Спасибо BalusC, что помогает, dunno, как я пропустил это. Добавление к нему, могу ли я знать, почему кнопка «Назад» возвращает пользователя на страницу панели управления (страница после входа в систему), вместо того, чтобы возвращать его обратно в index.xhtml – ItachiUchiha

+0

@abhinay: это другая проблема. Если вы исследовали HTTP-трафик в встроенном наборе инструментов разработчика, вы заметили бы, что кнопка «Назад» обслуживает страницу из кеша браузера, а не прямо с сервера. В этом случае перейдите на страницу http://stackoverflow.com/a/10305799 – BalusC

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