首先我的类关系
实体类:
class entityClass{
private int id;
}
class model extends entityClass{
private String username;
private String password;
}
然后action中
class modelAction extends ActionSupport{
private boolean success;
private Model model;
//以json对象返回jsp页面必须要有get方法。
//get方法、、、、
}
action的配置文件:
<package name="model" namespace="/"
extends="json-default">
<action name="delete_action" class="modelAction"
method="delete">
<result name="delete" type="json">
<!-- 设置要返回的数据,比如:action中有getModel、getSuccess等get方法,可以用root属性设置序列哪一个 -->
<param name="root">success</param>
<!-- includeProperties这个参数直接返回对象的json数据,前台不需要eval转换,<param name="root">result</param>则不同,需要前台进行eval转换-->
<!-- <param name="includeProperties">success</param> -->
<!-- ignoreHierarchy 参数:表示是不是纰漏等级,也就是继承关系,
好比:TestAction继承于BaseAction,那么TestAction中归回的json字符串默 认是不会包含父类BaseAction的属性值,
ignoreHierarchy值默认为true,设置为false后会将父类以及子类的属性一起归回。
设置次属性为false后,会将entityClass中的id也序列化,否则不会序列化id。
-->
<param name="ignoreHierarchy">false</param>
<!-- 剔除model中的部分属性,一般不与includeProperties属性一起使用 -->
<!-- <param name="excludeProperties">id</param> -->
</result>
<result name="error" type="json"></result>
</action>
jsp页面接收json对象:
function postConnect() {
var request = false;
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request) {
alert("Error initializing XMLHttpRequest!");
return false;
}
return request;
}
function booleanCheck(id) {
var request = postConnect();
if (!request) {
alert("访问失败");
}
var url = "<%=request.getContextPath()%>/delete_action?id=" + id;
request.open("GET", url, true);
request.onreadystatechange = function(){
if (request.readyState == 4) {
if ((request.status >= 200 && request.status < 300) || request.status == 304) {
var obj = eval('(' + request.responseText + ')' ); //上面的两个if语句一定要加,否则eval方法会返回多条数据(包含错误数据)。request.responseText是返回的json对象。
if(obj){
$("tr[id='" + id + "']").remove(); //此处刷新列表
}else{
alert("删除失败!");
}
}
else {
alert("Request was unsuccessful: " + request.status);
}
}
};
request.send(null);
}