后端代码;只返回 json单字符串数据
@RequestMapping("/a2")
@ResponseBody
public String fixLogin(String username,String password) {
Map<String, Object> map = new HashMap<>();
String msg="";
if (username != null) {
if ("admin".equals(username)) {
msg="ok";
}else{
msg = "用户名不正确";
}
}
if (password != null) {
if ("123456".equals(password)) {
msg = "ok";
} else {
msg = "密码输入错误";
}
}
return msg;
}
前端代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>验证用户输入情况</title>
<script type="text/javascript" src="/asserts/js/jquery-3.4.1.min.js"></script>
<script type="text/javascript">
function io1() {
$.post("/ajax/a2",{"username":$("#name").val()},function (data) {
if (data.toString() === 'ok') {
$("#nameInfo").css("color","green")
}else{
$("#nameInfo").css("color","red")
}
$("#nameInfo").html(data);
})
}
function io2() {
$.post("/ajax/a2",{"password":$("#pwd").val()},function (data) {
if (data.toString() === "ok") {
$("#pwdInfo").css("color", "green")
}else{
$("#pwdInfo").css("color", "red")
}
$("#pwdInfo").html(data);
})
}
</script>
</head>
<body>
<div>
<p>
用户名 <input type="text" id="name" onblur="io1()"/>
<span id="nameInfo"></span>
</p>
</div>
<div>
<p>
用户密码 <input type="text" id="pwd" onblur="io2()"/>
<spam id="pwdInfo"></spam>
</p>
</div>
</body>
</html>
结果显示:
Ajax总结:使用JQuery需要导入jQyery包,
三部曲:
1,编写对应的处理controller类,返回消息或者字符串对象或者json根式数据;
2.编写ajax请求:
1.url:controller的mapping
2.data:key/value键值对
3.success:回调函数,相当于原生的response.onreadystatechange=function(){}
3.给ajax绑定事件,点击时间onclick,失去焦点事件onblur,键盘弹起事件keyup,键盘按下keydown.
更多案例:
1.基础案例
@RequestMapping("/a")
public void sayAjax(String name, HttpServletResponse response) throws IOException {
if ("admin".equals(name)) {
response.getWriter().print("true");
} else {
response.getWriter().print("false");
}
}
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>ajax</title>
<!-- 导入jQuery的包-->
<script type="text/javascript" src="/asserts/js/jquery-3.4.1.min.js"></script>
<script>
function lose() {
//这里是需要加#号的才能锁定id
$.ajax({
url: "/ajax/a",
data: {"name": $("#myname").val()},
success: function (data, status) {
console.log($("#myname").val());
alert(data);
alert(status)
}
});
}
</script>
</head>
<body>
<div>
<p>
用户名: <input type="text" id="myname" onblur="lose()">
</p>
</div>
</body>
</html>
显示结果
2.返回一个列表
@PostMapping("/a1")
@ResponseBody
public List<BookUser> findAll() {
List<BookUser> list = bookUserMapper.selectAlluser();
return list;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用ajax请求显示用户列表</title>
<script type="text/javascript" src="asserts/js/jquery-3.4.1.min.js"></script>
</head>
<body>
<h3>用户信息显示</h3>
<div>
<p>
<input type="button" value="获取数据" id="btn">
</p>
</div>
<div>
<table style="width: 80%">
<thead>
<th>id</th>
<th>姓名</th>
<th>性别</th>
<th>生日</th>
<th>邮箱</th>
<th>会员等级</th>
<th>创建日期</th>
<th>修改日期</th>
</thead>
<tbody id="tb">
</tbody>
</table>
</div>
<script>
function timeStamp2String(time){
var datetime = new Date();
datetime.setTime(time);
var year = datetime.getFullYear();
var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
}
function timeStamp1String(time){
var datetime = new Date();
datetime.setTime(time);
var year = datetime.getFullYear();
var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
return year + "-" + month + "-" + date;
}
$(function () {
$("#btn").click(
function () {
$.post("/ajax/a1",function (data,status) {
console.log(data);
var html = "";
for (var i = 0; i < data.length; i++) {
html += "<tr>"+
"<td>"+data[i].id+"</td>"+
"<td>"+data[i].username+"</td>"+
"<td>"+data[i].sex+"</td>"+
"<td>"+timeStamp1String(Date.parse(data[i].birthday))+"</td>"+
"<td>"+data[i].email+"</td>"+
"<td>"+data[i].userLevel+"</td>"+
"<td>"+timeStamp2String(Date.parse(data[i].createTime))+"</td>"+
"<td>"+timeStamp2String(Date.parse(data[i].updateTime))+"</td>";
}
$("#tb").html(html);
})
})
})
</script>
</body>
</html>