diff --git a/pom.xml b/pom.xml index d2e0079..dd1c0b2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.cloudowr sdk - 1.2.3 + 1.2.4 diff --git a/src/main/java/cn/cloudowr/sdk/jfinal/Controller.java b/src/main/java/cn/cloudowr/sdk/jfinal/Controller.java index 690d960..681225f 100644 --- a/src/main/java/cn/cloudowr/sdk/jfinal/Controller.java +++ b/src/main/java/cn/cloudowr/sdk/jfinal/Controller.java @@ -9,7 +9,7 @@ import com.jfinal.core.ActionException; public class Controller extends com.jfinal.core.Controller{ @Override public void renderError(int errorCode, String msg) { - throw new ActionException(errorCode, new ErrorRender(errorCode, msg)); + render(new ErrorRender(errorCode, msg)); } @Override diff --git a/src/main/java/cn/cloudowr/sdk/jfinal/ErrorInterceptor.java b/src/main/java/cn/cloudowr/sdk/jfinal/ErrorInterceptor.java index b401a03..2791fd3 100644 --- a/src/main/java/cn/cloudowr/sdk/jfinal/ErrorInterceptor.java +++ b/src/main/java/cn/cloudowr/sdk/jfinal/ErrorInterceptor.java @@ -17,11 +17,16 @@ public class ErrorInterceptor implements Interceptor { if (e instanceof ActionException) { ActionException ae = (ActionException) e; Render render = ae.getErrorRender(); - render.render(); - } else { - new ErrorRender(500, inv.getController().getResponse()).render(); - throw e; + if (render instanceof ErrorRender) { + ErrorRender er = (ErrorRender) render; + er.setResponse(inv.getController().getResponse()); + er.render(); + return; + } } + new ErrorRender(500, inv.getController().getResponse()).render(); + throw e; + } } } diff --git a/src/main/java/cn/cloudowr/sdk/jfinal/ErrorRender.java b/src/main/java/cn/cloudowr/sdk/jfinal/ErrorRender.java index 0a5ba1a..031e782 100644 --- a/src/main/java/cn/cloudowr/sdk/jfinal/ErrorRender.java +++ b/src/main/java/cn/cloudowr/sdk/jfinal/ErrorRender.java @@ -65,4 +65,8 @@ public class ErrorRender extends Render { public void setMsg(String msg) { this.msg = msg; } + + public void setResponse(HttpServletResponse response) { + this.response = response; + } } diff --git a/src/main/java/cn/cloudowr/sdk/jfinal/IdInterceptor.java b/src/main/java/cn/cloudowr/sdk/jfinal/IdInterceptor.java index 435007c..f2a625d 100644 --- a/src/main/java/cn/cloudowr/sdk/jfinal/IdInterceptor.java +++ b/src/main/java/cn/cloudowr/sdk/jfinal/IdInterceptor.java @@ -14,7 +14,7 @@ public class IdInterceptor implements Interceptor { if (id != null && !id.isEmpty()) { inv.invoke(); } else { - ((Controller)inv.getController()).renderError(400, "id must not be null"); + inv.getController().render(new ErrorRender(400, "id must not be null")); } } }