У меня небольшая проблема, когда я пытаюсь перенаправить страницу. Это мой код:
public String doLoginn(){
try{
Users users = DaoFactory.getUsersDao().getUsersByUsernameAndPasswordAndRole(username, password, id_role_fk);
if(users != null){
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
RequestContext rc = RequestContext.getCurrentInstance();
session.setAttribute("LOGIN USER", users);
LOGGER.info("Login success");
if(users.getId_role_fk() == 2)
{
rc.execute("swal('Login success!', 'Congratulations! you are logged in as Management', 'success')");
return "home?faces-redirect=true";
} else{
rc.execute("swal('Login success!', 'Congratulations! you are logged in as Admin', 'success')");
return "list-data-user?faces-redirect=true";
}
} else{
LOGGER.error("Login failed");
AppBean.addErrorMsg("Invalid Username and Password");
}
} catch(SQLException e){
AppBean.addErrorMsg("Cannot execute db");
LOGGER.error("Failed to execute db: " + e.getCause());
}
return null;
}
Так что это функция входа в систему. Когда вход в систему будет успешным, появится приятное предупреждение, и если я нажму «ОК», он будет перенаправлен на другую страницу. Но я не могу найти способ сделать это. Я установил свое сладкое предупреждение в bean-компоненте, поэтому в моем x html я просто вызываю функцию doLoginn. У вас есть какие-либо предложения? Вот мой код x html для кнопки входа в систему:
<!-- button login -->
<div class="col s12 input-field" style="margin-left: 155px;">
<h:commandLink value="Login" styleClass="btn btn-large"
actionListener="#{loginBean.doLoginn()}" />
</div>
Основываясь на моем бобе, если я использую действие, оно перенаправит страницу, но не показывает сладкое предупреждение, а если я использую actionListener, оно покажет сладкое оповещение, но не перенаправление страницы.