У меня есть имя пользователя и пароль, привязанные к управляемому bean-файлу. В бэкэн-бэнде, когда я проверяю имя пользователя и пароль с помощью БД, я хочу перенаправить страницу от login.xhtml
до home.xhtml
. Как я могу это сделать?Как перенаправить после входа?
ответ
Просто верните идентификатор вида, добавленный с параметром 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).
}
}
А потом? Я имею в виду, где я могу использовать эту возвращенную строку? У меня есть страница login.xhtml с именем, связанным с ним. С помощью этого метода, как перенаправить пользователя на совершенно новую страницу? –
Что вы пробовали? Как это не работает для вас? Вам не нужно ничего делать. Новая страница должна появиться, если идентификатор вида прав. В приведенном выше ответе предполагается, что это 'home.xhtml', который находится в той же папке, что и' login.xhtml'. – BalusC
ОК, понял. Теперь вы можете рассказать мне, как это работает? перенаправление лиц - это зарезервированный параметр, верно? а также сказать мне, что он работает. –
Вы используете jsf 2 или jsf 1.x? – Daniel
@ Daniel: основанный на его истории вопроса, JSF 2.0. – BalusC