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" />