介绍
先说下什么是异步刷新,粗略的说就是不刷新整个页面实现部分内容的刷新。由于只是在解决一些问题上遇到到异步刷新,所以这里只是简单介绍个例子,这里推荐http://www.runoob.com/ajax/ajax-database.html去网站看看具体的内容。
案例
1.下载依赖
下载jquery包并导入java项目。我这采用的是3.3.1版本,官网下载地址:https://jquery.com/download/
2.script代码
< script type = "text/javascript"
src = "/LeaveSystem/js/jquery-3.3.1.min.js" > < /script> <!–导入包–> <
script type = "text/javascript" >
$(".btn").bind("click", function() { //点击事件
$.ajax({
type: "post",
< !–提交到服务器的方式post或者get– >
url: "/", //提交到action的地址
data: { //传输时候附带的参数
"dbteachereclass.eclass": $(this).attr("data-eclass"),
"dbteachereclass.name": $(this).attr("data-name")
},
dataType: "json",
//预期服务器返回的数据类型类型有:xml、html、script、json、jsonp、text,这里我采用json的返回形式
success: function(data) { //获取数据承购执行的代码
var studata = eval("(" + data + ")"); //将数据转化成json
var s = ""; //需要生成的html代码
var head = "<tr><td height=’20px’ align=’center’>工号</td>" +
"<td height=’20px’ align=’center’>姓名</td>" +
"<td height=’20px’ align=’center’>操作</td></tr>";
//拼接html代码
$("#renming").append(head); //将拼接的代码放入ID为renming的标签里面
for (var i = 0; i < studata.length; i++) { //循环拼接接受到的代码
s = "<tr><td align=’center’>" + studata[i].teacher + "</td><td align=’center’>" +
studata[i].name +
"</td><td align=’center’><input type=’button’ class=’TeacherEclassAppointment’ value=’任命’ data-teacher=\"" +
studata[i].teacher + "\" data-name1=\"" + studata[i].name + "\" ></td></tr>";
$("#renming").append(s);
}
},
error: function() { //接受数据失败执行的代码
alert("系统异常,请稍后重试!");
}
});
});
3.html
<input type=’button’ class="btn" value=’任命’ data-eclass="${teacher.eclass}" data-name="${teacher.name}" >
4.java
java action的代码,这里只展示处理这个action的一个方法。
public String CollegeTeacher() throws Exception{
//查询班级转化为josn
String forward=null;
ActionContext.getContext().getSession().put("dbteachereclass",dbteachereclass);
ArrayList<DbTeacher> teacher = new ArrayList<DbTeacher>();
TeacherDao teacherdao = new TeacherDao();
if(dbteacher.getCollege()!=0) {
teacher = teacherdao.findClass(dbteacher.getCollege());
if(teacher.size()!=0) {
JSONArray json = JSONArray.fromObject(teacher); //看这里就好,其他的都是我系统要自带的代码,这里就是在dao层查询数据库获取到对象teacher,把teacher对象转化成json对象
result = json.toString(); //将json对象输出给result,通过result传输给jsp
forward="success";
}else {
forward="error";
}
}else {
forward="error";
}
return forward;
}
5.配置xml文件
<struts>
<constant name="struts.i18n.encoding" value="UTF-8"></constant> //传输编码
<package name="空间名字" namespace="空间路径" extends="struts-default,json-default">
<action name="名称" class="方法路径" method="方法名" >
<result name="success" type="json">
<param name="root">result</param>
</result>
<result name="error"></result>
</action>
</package>
</struts>
评论