From c03dd07f115540978094b306f87c3c3411cf544b Mon Sep 17 00:00:00 2001 From: lyf666 Date: Mon, 20 Feb 2017 14:12:32 +0800 Subject: [PATCH] . --- pom.xml | 2 +- .../java/cn/cloudowr/sdk/jfinal/Controller.java | 2 +- .../cn/cloudowr/sdk/jfinal/ErrorInterceptor.java | 13 +++++++++---- .../java/cn/cloudowr/sdk/jfinal/ErrorRender.java | 4 ++++ .../java/cn/cloudowr/sdk/jfinal/IdInterceptor.java | 2 +- 5 files changed, 16 insertions(+), 7 deletions(-) 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")); } } }