diff --git a/pom.xml b/pom.xml
index 389df3e..d2e0079 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
cn.cloudowr
sdk
- 1.1.2
+ 1.2.3
diff --git a/src/main/java/cn/cloudowr/sdk/jfinal/Controller.java b/src/main/java/cn/cloudowr/sdk/jfinal/Controller.java
new file mode 100644
index 0000000..690d960
--- /dev/null
+++ b/src/main/java/cn/cloudowr/sdk/jfinal/Controller.java
@@ -0,0 +1,19 @@
+package cn.cloudowr.sdk.jfinal;
+
+import cn.cloudowr.sdk.FastJSONUtil;
+import com.jfinal.core.ActionException;
+
+/**
+ * Created by lyf66 on 2017/2/20.
+ */
+public class Controller extends com.jfinal.core.Controller{
+ @Override
+ public void renderError(int errorCode, String msg) {
+ throw new ActionException(errorCode, new ErrorRender(errorCode, msg));
+ }
+
+ @Override
+ public void renderJson(Object o) {
+ renderJson(FastJSONUtil.bsonToJSON(o));
+ }
+}
diff --git a/src/main/java/cn/cloudowr/sdk/jfinal/ErrorInterceptor.java b/src/main/java/cn/cloudowr/sdk/jfinal/ErrorInterceptor.java
new file mode 100644
index 0000000..b401a03
--- /dev/null
+++ b/src/main/java/cn/cloudowr/sdk/jfinal/ErrorInterceptor.java
@@ -0,0 +1,27 @@
+package cn.cloudowr.sdk.jfinal;
+
+import com.jfinal.aop.Interceptor;
+import com.jfinal.aop.Invocation;
+import com.jfinal.core.ActionException;
+import com.jfinal.render.Render;
+
+/**
+ * Created by lyf66 on 2017/2/20.
+ */
+public class ErrorInterceptor implements Interceptor {
+ @Override
+ public void intercept(Invocation inv) {
+ try {
+ inv.invoke();
+ } catch (Exception e) {
+ if (e instanceof ActionException) {
+ ActionException ae = (ActionException) e;
+ Render render = ae.getErrorRender();
+ render.render();
+ } else {
+ 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
new file mode 100644
index 0000000..0a5ba1a
--- /dev/null
+++ b/src/main/java/cn/cloudowr/sdk/jfinal/ErrorRender.java
@@ -0,0 +1,68 @@
+package cn.cloudowr.sdk.jfinal;
+
+import com.jfinal.render.Render;
+import com.jfinal.render.RenderException;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * Created by lyf66 on 2017/2/20.
+ */
+public class ErrorRender extends Render {
+ protected static final String contentType = "text/html; charset=" + getEncoding();
+
+ private int errorCode;
+ private String msg;
+
+ public ErrorRender(int errorCode) {
+ this.errorCode = errorCode;
+ this.msg = errorCode + "";
+ }
+
+ public ErrorRender(int errorCode, String msg) {
+ this.errorCode = errorCode;
+ this.msg = msg;
+ }
+
+ public ErrorRender(int errorCode, HttpServletResponse response) {
+ this.errorCode = errorCode;
+ this.response = response;
+ this.msg = errorCode + "";
+ }
+
+ @Override
+ public void render() {
+ response.setStatus(errorCode);
+
+ PrintWriter writer = null;
+ try {
+ response.setContentType(contentType);
+ writer = response.getWriter();
+ writer.write(msg);
+ writer.flush();
+ } catch (IOException e) {
+ throw new RenderException(e);
+ } finally {
+ if (writer != null)
+ writer.close();
+ }
+ }
+
+ public int getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(int errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+}
diff --git a/src/main/java/cn/cloudowr/sdk/IdInterceptor.java b/src/main/java/cn/cloudowr/sdk/jfinal/IdInterceptor.java
similarity index 73%
rename from src/main/java/cn/cloudowr/sdk/IdInterceptor.java
rename to src/main/java/cn/cloudowr/sdk/jfinal/IdInterceptor.java
index b49f89f..435007c 100644
--- a/src/main/java/cn/cloudowr/sdk/IdInterceptor.java
+++ b/src/main/java/cn/cloudowr/sdk/jfinal/IdInterceptor.java
@@ -1,4 +1,4 @@
-package cn.cloudowr.sdk;
+package cn.cloudowr.sdk.jfinal;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
@@ -14,7 +14,7 @@ public class IdInterceptor implements Interceptor {
if (id != null && !id.isEmpty()) {
inv.invoke();
} else {
- inv.getController().renderError(400);
+ ((Controller)inv.getController()).renderError(400, "id must not be null");
}
}
}
diff --git a/src/main/java/cn/cloudowr/sdk/JQueryParameterFilter.java b/src/main/java/cn/cloudowr/sdk/jfinal/JQueryParameterFilter.java
similarity index 97%
rename from src/main/java/cn/cloudowr/sdk/JQueryParameterFilter.java
rename to src/main/java/cn/cloudowr/sdk/jfinal/JQueryParameterFilter.java
index c61f1c4..d326367 100644
--- a/src/main/java/cn/cloudowr/sdk/JQueryParameterFilter.java
+++ b/src/main/java/cn/cloudowr/sdk/jfinal/JQueryParameterFilter.java
@@ -1,4 +1,4 @@
-package cn.cloudowr.sdk;
+package cn.cloudowr.sdk.jfinal;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
diff --git a/src/main/java/cn/cloudowr/sdk/jfinal/RestfulStyle.java b/src/main/java/cn/cloudowr/sdk/jfinal/RestfulStyle.java
new file mode 100644
index 0000000..1335196
--- /dev/null
+++ b/src/main/java/cn/cloudowr/sdk/jfinal/RestfulStyle.java
@@ -0,0 +1,12 @@
+package cn.cloudowr.sdk.jfinal;
+
+/**
+ * Created by lyf66 on 2017/2/20.
+ */
+public interface RestfulStyle {
+ void index();
+ void show();
+ void save();
+ void update();
+ void delete();
+}