Как я могу перенаправить на другую страницу со сладким предупреждением? - PullRequest
0 голосов
/ 13 марта 2020

У меня небольшая проблема, когда я пытаюсь перенаправить страницу. Это мой код:

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, оно покажет сладкое оповещение, но не перенаправление страницы.

...