如何 return 对 Struts 2 中的 ajax 调用的可捕获错误?
How to return catchable error to the ajax call in Struts 2?
我有一些 Struts 2 个操作由 Ajax 调用。我尝试处理错误并捕获错误,但它没有按预期工作。
方法ajax方法:
deleteIndicateur(id) {
$.ajax({
type: "DELETE",
url:"<%=request.getContextPath()%>/mesures.ce.delete.action?id=" + id,
success: function (resp) {
alert(resp);
},
error: function (resp) {
alert(resp);
}
})
},
和这个 Action
:
@Action(value = "ce.delete", results = {
@Result(name = "success", type = "json", params = {"root", "indicateurDictionnaire"}),
@Result(name = "error", type = "json", params = {"root", "errors"})
})
public String delete() {
Integer dicId = Integer.valueOf(this.getParameter("id"));
try {
dicBo.delete(dicId);
} catch (Exception e) {
this.errors = getText(e.getMessage());
return ERROR;
}
return SUCCESS;
}
Delete 工作正常,但是当该方法出错时,错误会被 ajax 请求中的成功函数捕获。我必须如何处理 return Ajax?
的可捕获错误
如果响应具有与错误对应的状态代码,则调用回调 error
。参见 the list of HTTP status codes。
要return一个带有错误信息的响应和设置错误对应的状态码需要配置动作结果error
。类似于
@Result(name = "error", type = "json", params = {"root", "errors", "statusCode", 400})
})
我有一些 Struts 2 个操作由 Ajax 调用。我尝试处理错误并捕获错误,但它没有按预期工作。
方法ajax方法:
deleteIndicateur(id) {
$.ajax({
type: "DELETE",
url:"<%=request.getContextPath()%>/mesures.ce.delete.action?id=" + id,
success: function (resp) {
alert(resp);
},
error: function (resp) {
alert(resp);
}
})
},
和这个 Action
:
@Action(value = "ce.delete", results = {
@Result(name = "success", type = "json", params = {"root", "indicateurDictionnaire"}),
@Result(name = "error", type = "json", params = {"root", "errors"})
})
public String delete() {
Integer dicId = Integer.valueOf(this.getParameter("id"));
try {
dicBo.delete(dicId);
} catch (Exception e) {
this.errors = getText(e.getMessage());
return ERROR;
}
return SUCCESS;
}
Delete 工作正常,但是当该方法出错时,错误会被 ajax 请求中的成功函数捕获。我必须如何处理 return Ajax?
的可捕获错误如果响应具有与错误对应的状态代码,则调用回调 error
。参见 the list of HTTP status codes。
要return一个带有错误信息的响应和设置错误对应的状态码需要配置动作结果error
。类似于
@Result(name = "error", type = "json", params = {"root", "errors", "statusCode", 400})
})