首先我的類關係
實體類:
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);
}