1、自定义异常类
public class AjaxException extends RuntimeException {
public AjaxException() {
super();
}
public AjaxException(String message) {
super(message);
}
public AjaxException(Throwable cause) {
super(cause);
}
public AjaxException(String message, Throwable cause) {
super(message, cause);
}
}
2、新建一个用于处理异常的Action类
public class AjaxExceptionProcessorAction extends ActionSupport {
private Exception exception;
public String execute(){
Map<String, String> resultMap = new HashMap<String, String>();
resultMap.put(RESULT_CODE, "false");
if(exception != null){
resultMap.put(ERROR_MESSAGE, exception.getMessage());
}
res.setContentType("text/json;charset=UTF-8");
res.setHeader("Cache-Control","no-cache");
res.setCharacterEncoding("utf-8");
PrintWriter out = ServletActionContext.getResponse().getWriter();
out.write(str);
out.close();
return null;
}
public Exception getException() {
return exception;
}
public void setException(Exception exception) {
this.exception = exception;
}
}
3、在struts.xml文件中进行以下配置
<global-results> <result name="ajaxError" type="chain"> <param name="actionName">ajaxExceptionProcessor</param> </result> </global-results> <global-exception-mappings> <exception-mapping result="ajaxError" exception="com.gsafc.framework.exception.AjaxException"></exception-mapping> </global-exception-mappings> <action name="ajaxExceptionProcessor" class="com.XXX.AjaxExceptionProcessorAction" />