Jsp 无法成功重定向Struts 2中的操作

Jsp 无法成功重定向Struts 2中的操作,jsp,struts2,Jsp,Struts2,我正在运行struts 2,并且已经成功地连接到我的SQL server,一切正常,只是我尝试以不同的方式重定向我的用户和管理员,例如当有人登录到web时,我想将他重定向到homepage.jsp(如果他是普通用户)或control.jsp(如果他是页面管理员)我没有让这部分工作,我有以下代码,但用户和管理员都被重定向到管理页面。如果有人能告诉我我的错误,或者我遗漏的任何其他信息来补充,那就太好了 struts.xml <!-- Login Function --> <acti

我正在运行struts 2,并且已经成功地连接到我的SQL server,一切正常,只是我尝试以不同的方式重定向我的用户和管理员,例如当有人登录到web时,我想将他重定向到homepage.jsp(如果他是普通用户)或control.jsp(如果他是页面管理员)我没有让这部分工作,我有以下代码,但用户和管理员都被重定向到管理页面。如果有人能告诉我我的错误,或者我遗漏的任何其他信息来补充,那就太好了

struts.xml

<!-- Login Function -->
<action name="Login" class="Actions.Login">
        <result type="redirectAction">
            <param name="actionName">LevelofAccess</param>
        </result>
        <result name="input">Index.jsp</result>
</action>
<action name="LevelofAccess" class="Actions.LevelofAccess">
        <result name="success">/WEB-INF/Control.jsp</result>
        <result name="input">/WEB-INF/Homepage.jsp</result>
        </action>

您需要从操作方法返回不同的结果才能使用不同的配置结果。是否返回不同的结果?在什么方面,仅仅拥有“return”不意味着默认情况下它是return输入吗???如果不是,你到底在暗示什么?添加附加操作包??您的操作方法
execute
始终返回
SUCCESS
validate
方法用于验证,而不是action方法()。哦,基本上我必须在您在struts.xml中为该操作定义的
execute
函数?In action方法下配置我的结果(
execute
是默认的操作方法)。考虑先阅读一些教程。
package Actions;
import Objects.ConnectSQL;
import com.opensymphony.xwork2.ActionSupport;
import java.sql.ResultSet;
import java.util.Map;
import org.apache.struts2.interceptor.SessionAware;

public class Login extends ActionSupport implements SessionAware {
private Map session;

private String username = "";  
private String password = "";  


ConnectSQL connectSQL = new ConnectSQL();

public Login() {
}

@Override
public void validate(){
    // Check if username exists on session map.  If it exists, it means that user log in before
    Object usernameobject = session.get("username");  
    if (usernameobject == null) {
        //nothing will happen
    }
    else {
        // Username exists on session map, i.e. user has  already logged in.
        return;
    }

    // Connect to MS SQL Server database.
    String message = connectSQL.connect("localhost", 1433, "Online", "Eugene", "Eugene"); //Shopping = Databasename, Eugene = user, Eugene = pass
    if (message != null) { //if message null, means connection OK
        addActionError(message);
        return;
    }

    // Check if username and password are correct.
    boolean userfound = false; //Set to false as if it is found, will be set to true later
    ResultSet select = connectSQL.executeSQLStatement("SELECT * FROM Users"); //Choosing the value inside the table
    try { // looping to find the username
        while (select.next()) { 
            String selectusername = select.getString("Username"); //Field name in table <<
            String selectpassword = select.getString("Password");

            if (username.equals(selectusername)) {
                userfound = true;
                if (!password.equals(selectpassword)) {
                    addFieldError("password", "Incorrect password");
                    return;
                }
            }
        }
    }
    catch (Exception e) {
        addActionError(e.getMessage());
        return;
    }

    if (userfound) {
        // At this point, username and password are correct.
        // So we add the username to the session map to enable subsequent actions to be able
        // to check that user has already logged in.
        session.put("username", username);  
    }
    else
        addFieldError("username", "Invalid username");
}

@Override
public String execute() {
return SUCCESS;
}

@Override
public void setSession(Map session) {
    this.session = session;
}

public void setUsername(String username) {
    this.username = username;
}

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

    String username;
public LevelofAccess(){
}


@Override
public void validate(){
Object usernameObject = session.get("username");
    if (usernameObject == null) {
        addActionError("Error: User is not found.  Please log in again.");
        return;
    }
    else
        username = (String) usernameObject;

    // Connect to MS SQL Server database.
    String message = connectSQL.connect("localhost", 1433, "Online", "Eugene", "Eugene");
    if (message != null) {
        addActionError(message);
    }

    ResultSet rs = connectSQL.executeSQLStatement("SELECT Type FROM Online.dbo.Users where Username = " + "'" + username + "'");
try{    
while(rs.first()){
    int gettype = rs.getInt("Type");
    if (gettype == 1){
    return;
    }
    else {
    // do nothing     
    }
    }
}
catch (Exception e) {
}
}

@Override
public String execute() {
    return SUCCESS;
}

@Override
public void setSession(Map session) {
    this.session = session;
}
}