Веб-сайт Java JSF, созданный с использованием страниц BootsFaces, неверно указывает - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок, который изучает Java и создает сайт с помощью JSF, используя BootFaces.Сейчас я делаю проект о сайте путешествий, поэтому есть 2 типа пользователей: администратор и пользователи.При выполнении проекта я столкнулся с проблемой, состоящей в том, что после успешного входа в систему welcomeRegularUser.xhtml и welcomeAdmin.xhtml появлялись дважды.Например, в первый раз страница проекта перенаправляется со страницы индекса на страницу http://localhost:8080/TravelWeb/, на которой есть информация welcomeRegularUser.Я нажимаю на кнопку SearchAttraction, теперь она действительно переходит на http://localhost:8080/TravelWeb/welcomeRegularUser.xhtml по ссылке.Теперь кнопка работает правильно, что вызывает функцию searchAttraction ().Я не знаю почему, но я надеюсь, что кто-то может мне помочь.Спасибо

Login.java

@ManagedBean
@SessionScoped
public class Login implements Serializable {

//attributes

private String uid;

private String password;
private int type;
private RegularUser regularUserAccount;
private Admin adminAccount;

public Login() {
    regularUserAccount = null;
    adminAccount = null;
}

public String getUid() {
    return uid;
}

public String getPassword() {
    return password;
}

public int getType() {
    return type;
}

public RegularUser getRegularUserAccount() {
    return regularUserAccount;
}

public Admin getAdminAccount() {
    return adminAccount;
}

public void setType(int type) {
    this.type = type;
}

public void setUid(String uid) {
    this.uid = uid;
}

public void setPassword(String password) {
    this.password = password;
}



public String errorPassword() {    
    FacesMessages.error("Error!", "The <strong>Password</strong> is 
                 incorrect!");
    return null;
}
public String errorUsername() {
    FacesMessages.error("Error!", "The <strong>Username</strong> is 
          not in the System!");
    return null;
}
public String blockedUser() {
    FacesMessages.error("Error!", "The <strong>Username</strong> is 
                already blocked!");
    return null;
}

public String login() {

    if (uid.equals("admin") && password.equals("admin")) {
        adminAccount = new Admin(uid, password, type);
        return "welcomeAdmin";
    }
    Connection conn = null;
    Statement stat = null;
    ResultSet rs = null;

    try {
        conn = DatabaseUtil.getConnection();
        stat = conn.createStatement();
        rs = stat.executeQuery("Select * from BSN_User where uid = '" 
                   + uid + "'");

        if (rs.next()) {
            if (password.equals(rs.getString(2))) {
                if (rs.getInt(4) == 9) {
                    return blockedUser();
                }   
                regularUserAccount = new RegularUser(uid, password, 
                         rs.getString(3), type);
                return "welcomeRegularUser";
            } else {
                return errorPassword();

            }
        } else {
            return errorUsername();

        }

    } catch (SQLException e) {
        e.printStackTrace();
        return ("internalError");
    } finally {

        DatabaseUtil.closeConnection(conn);
        DatabaseUtil.closeStatement(stat);
        DatabaseUtil.closeResultSet(rs);
    }

}

index.xhtml

<h:head>
    <title>Travel Advisor Home Page</title>
    <style type="text/css">
        .form-signin{
            margin: 0 auto;
            width: 300px;
            padding:15px;
        }
    </style>
</h:head>
<h:body style="background-color: lightblue;">
    <b:container style="padding:100px;">
        <h:form styleClass="form-signin" prependId="false">
            <b:image value="../images/logo.png" style="height: 268px; 
                    width: 268px;"></b:image>

                <h2 class="form-signin-heading" style="text-align: 
                    center;">Login</h2>
                <b:row>

                    <b:inputText id="username" placeholder="Username"
                                 autocomplete="false"
                                 value="#{login.uid}" 
                     label="Username">

                    <f:facet name="prepend"><b:icon name="user"/> 
                 </f:facet> 
                    </b:inputText>

                </b:row>
                <b:row>

                    <b:inputSecret id="password" 
          placeholder="Password"
                                   autocomplete="false"
                            value="#{login.password}" 
label="Password">
                    <f:facet name="prepend"><b:iconAwesome 
name="key"/></f:facet>
                    </b:inputSecret>

                    <b:selectBooleanCheckbox value="false" 
    caption="Remember Me"></b:selectBooleanCheckbox>

                    <b:growl id="growl" globalOnly="true" 
     showDetail="true" severity="error"></b:growl>

                    <b:commandButton look="primary btn-block" 
      value="Login" icon="log-in" action="#{login.login()}" 
      update="growl"></b:commandButton>

                    <b:commandButton look="primary btn-block" 
       value="Register" icon="pencil" action="register.xhtml"> 
       </b:commandButton>

                </b:row>

        </h:form>
    </b:container>

</h:body>
...