diff --git a/src/org/redkale/net/http/HttpResponse.java b/src/org/redkale/net/http/HttpResponse.java index 19cb783fa..335e2d6f4 100644 --- a/src/org/redkale/net/http/HttpResponse.java +++ b/src/org/redkale/net/http/HttpResponse.java @@ -508,6 +508,9 @@ public class HttpResponse extends Response { } else { finish(convert, result.getResult()); } + } else if (obj instanceof RestResult) { + RestResult result = (RestResult) obj; + finish(result.getConvert() == null ? request.getJsonConvert() : result.getConvert(), type, result.getResult()); } else { if (hasRender) { if (onlyoneHttpRender != null) { diff --git a/src/org/redkale/net/http/HttpResult.java b/src/org/redkale/net/http/HttpResult.java index f7352858f..e82d9b019 100644 --- a/src/org/redkale/net/http/HttpResult.java +++ b/src/org/redkale/net/http/HttpResult.java @@ -22,17 +22,17 @@ public class HttpResult { public static final String SESSIONID_COOKIENAME = HttpRequest.SESSIONID_NAME; - private Map headers; + protected Map headers; - private List cookies; + protected List cookies; - private String contentType; + protected String contentType; - private T result; + protected T result; - private int status = 0; //不设置则为 200 + protected int status = 0; //不设置则为 200 - private String message; + protected String message; public HttpResult() { } diff --git a/src/org/redkale/net/http/RestResult.java b/src/org/redkale/net/http/RestResult.java new file mode 100644 index 000000000..2ff3a927a --- /dev/null +++ b/src/org/redkale/net/http/RestResult.java @@ -0,0 +1,49 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.redkale.net.http; + +import org.redkale.convert.Convert; + +/** + * 当RestMapping方法需要指定Convert进行序列化时将结果和Convert对象绑定输出 + * + *

+ * 详情见: https://redkale.org + * + * @author zhangjx + * @param 结果对象的类型 + */ +public class RestResult { + + protected Convert convert; + + protected T result; + + public RestResult() { + } + + public RestResult(Convert convert, T result) { + this.convert = convert; + this.result = result; + } + + public Convert getConvert() { + return convert; + } + + public void setConvert(Convert convert) { + this.convert = convert; + } + + public T getResult() { + return result; + } + + public void setResult(T result) { + this.result = result; + } + +}