简体   繁体   English

使用 struts2 登录后重定向

[英]redirect after login with struts2

i want to make a redirect after a login action to my index page (index.jsp), actually my login works but the redirection is missing with ajax support.我想在登录到我的索引页面(index.jsp)后进行重定向,实际上我的登录有效,但在 ajax 支持下缺少重定向。

Her is my login.jsp她是我的登录名。jsp

<html>
<head>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript">
    function loginUser() {
    var username = $("#username").val();
    var userpass = $("#userpass").val();

    $.ajax({
        type : "POST",
        url : "loginuser.action",
        data : "username=" + username + "&userpass=" + userpass,
        success : function(data) {
            var ht = data.msg;
            $("#resp").html(ht);
        },
        error : function(data) {
            alert("Some error occured.");
        }
    });
}
</script>
</head>
<body style="text-align: center;">

<div class="container ">
    <div class="col-lg-4">
        <div class="form-group">
            <input type="text" name="username" id="username"
                class="form-control input-sm" placeholder="User Name">
        </div>
        <div class="form-group">
            <input type="password" name="userpass" id="userpass"
                class="form-control input-sm" placeholder="Password">
        </div>
        <button onclick="loginUser();" type="button" class="btn btn-success btn-block">Login</button>
        <div class="text-center" id="resp" style="margin-top: 14px;"></div>
    </div>
</div>

here is my LoginAction这是我的登录操作

 public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 5569022937143602032L;

private String username, userpass, msg;
Admin dao = null;

public String execute() throws SQLException, Exception {
    dao = new Admin();
    msg = dao.validate(username, userpass);
    return msg;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getUserpass() {
    return userpass;
}
public void setUserpass(String userpass) {
    this.userpass = userpass;
}
public String getMsg() {
    return msg;
}
public void setMsg(String msg) {
    this.msg = msg;
}
}

my struts config file:我的 struts 配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="json-default">

    <action name="loginuser"
        class="org.websparrow.action.LoginAction">
        <result name="LOGIN" type="json"></result>
        <!-- <result name="Login Successful" type="redirectAction">index.jsp</result> -->
    </action>

    <action name="registeruser"
        class="org.websparrow.action.RegisterAction">
        <result name="REGISTER" type="json"></result>
    </action>
    <action name="report"
        class="org.websparrow.action.ReportAction">
        <result name="REPORT" type="json"></result>
    </action>
    <action name="updateuser"
        class="org.websparrow.action.UpdateAction">
        <result name="UPDATE" type="json"></result>
    </action>
    <action name="deleteuser"
        class="org.websparrow.action.DeleteAction">
        <result name="DELETE" type="json"></result>
    </action>
</package>

for DAO part is:对于 DAO 部分是:

public String validate(String username, String userpass) throws SQLException, Exception {公共字符串验证(字符串用户名,字符串用户密码)抛出 SQLException,异常 {

    boolean status = false;
    try {
        String sql = "select * from USERS where UNAME=? and UPASS=?";

        PreparedStatement ps = myconnection().prepareStatement(sql);
        ps.setString(1, username);
        ps.setString(2, userpass);
        ResultSet rs = ps.executeQuery();
        status = rs.next();
        if (status == true)
            return "Login Successful";
        else
            return "Login Failed";
    } catch (Exception e) {
        e.printStackTrace();
        return e.getMessage();
    } finally {
        if (myconnection() != null) {
            myconnection().close();
        }

    }
}

Thanks for your Help.谢谢你的帮助。

Do it in the success handler based on the result by changing the window.location value.根据结果通过更改 window.location 值在成功处理程序中执行此操作。 Struts page redirect is not applicable in your scenario. Struts 页面重定向不适用于您的方案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM