2012-05-20 12 views
1

У меня есть имя пользователя и пароль, привязанные к управляемому bean-файлу. В бэкэн-бэнде, когда я проверяю имя пользователя и пароль с помощью БД, я хочу перенаправить страницу от login.xhtml до home.xhtml. Как я могу это сделать?Как перенаправить после входа?

+0

Вы используете jsf 2 или jsf 1.x? – Daniel

+0

@ Daniel: основанный на его истории вопроса, JSF 2.0. – BalusC

ответ

6

Просто верните идентификатор вида, добавленный с параметром faces-redirect=true.

E.g.

public String login() { 
    User found = userService.find(username, password); 

    if (found != null) { 
     this.user = found; 
     return "home?faces-redirect=true"; // Will redirect to home.xhtml. 
    } 
    else { 
     addGlobalErrorMessage("Unknown login, please try again"); 
     return null; // Will stay in current view (and show error message). 
    } 
} 
+0

А потом? Я имею в виду, где я могу использовать эту возвращенную строку? У меня есть страница login.xhtml с именем, связанным с ним. С помощью этого метода, как перенаправить пользователя на совершенно новую страницу? –

+0

Что вы пробовали? Как это не работает для вас? Вам не нужно ничего делать. Новая страница должна появиться, если идентификатор вида прав. В приведенном выше ответе предполагается, что это 'home.xhtml', который находится в той же папке, что и' login.xhtml'. – BalusC

+0

ОК, понял. Теперь вы можете рассказать мне, как это работает? перенаправление лиц - это зарезервированный параметр, верно? а также сказать мне, что он работает. –

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