struts2、ajax实现前后端交互

跳过struts2环境搭建部分,或者可以看我的博客(http://www.cnblogs.com/zhangky/p/8436472.html),里面有写,很详细。

需要导入的jar包(struts官网有,自己下)

一、java类

    private String username;
    private String pwd;
    private Map<String, Object> result;
    
    public String getUsername() {
        return username;
    }

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

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public Map<String, Object> getResult() {
        return result;
    }

    public void setResult(Map<String, Object> result) {
        this.result = result;
    }

    public String login() {
        result = new HashMap<String , Object>();
        if(username.equals("z") && pwd.equals("123")) {
            result.put("success", true);
            result.put("username", username);
            return "success";
        }else {
            result.put("success", false);
            return "success";
        }
        
    }

二、html页面

<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
      <div id="tips"></div>
      <input type="text" id="username"/>
      <input type="password" id="pwd"/>
      <button onclick="login()">登录</button>
</body>
<script src="jquery.min.js"></script>
<script>
    function login(){
        const username = document.getElementById("username").value;
        const pwd = document.getElementById("pwd").value;
        $.ajax({
            type:"POST",
            url:"login",
            data:{
                "username":username,
                "pwd":pwd
            },
            dataType:"json",
            success:function(data){
                let tips = document.getElementById("tips");
                if(data.success == true){
                    window.location.href = "welcome.html?username=" + data.username
                }else{
                    tips.innerHTML = "用户名或者密码错误";
                }
            },
            error:function(error){
                
            }
        })
    }
</script>
</html>

三、struts.xml

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

<struts>
   <package name="default" namespace="/" extends="json-default,struts-default">
       <action name="login" class="day20.LoginAction" method="login" >
            <!--result默认name是success可不写,由于返回的是json格式数据,因此type必须是json -->
            <result type="json">
            <!--param 的 name固定写,result就是java类要返回的数据变量  -->
               <param name="root">result</param>
            </result>
       </action>
   </package>
</struts>
原文地址:https://www.cnblogs.com/zhangky/p/8513107.html