struts2、ajax实现前后端交互

时间:2021-12-02 08:32:16

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

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

struts2、ajax实现前后端交互

一、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>