diff --git a/conf/application.xml b/conf/application.xml index b0e8d2b..f3f05e0 100644 --- a/conf/application.xml +++ b/conf/application.xml @@ -25,6 +25,13 @@ + + + diff --git a/lib/redkale.jar b/lib/redkale.jar index 284ea41..eee0c2e 100644 Binary files a/lib/redkale.jar and b/lib/redkale.jar differ diff --git a/src/com/lxyer/bbs/base/EnjoyRender.java b/src/com/lxyer/bbs/base/EnjoyRender.java new file mode 100644 index 0000000..e898ff9 --- /dev/null +++ b/src/com/lxyer/bbs/base/EnjoyRender.java @@ -0,0 +1,41 @@ +package com.lxyer.bbs.base; + +import com.jfinal.template.Engine; +import com.jfinal.template.Template; +import org.redkale.convert.Convert; +import org.redkale.net.http.*; +import org.redkale.util.AnyValue; + +import javax.annotation.Resource; +import java.io.File; + +/** + * Created by JUECHENG at 2018/1/30 0:18. + */ +public class EnjoyRender implements HttpRender { + + @Resource(name = "SERVER_ROOT") + protected File webroot; + + private static final Engine engine = new Engine(); + + @Override + public void init(HttpContext context, AnyValue config) { + engine.setBaseTemplatePath(webroot.getPath()); + engine.addSharedObject("EJ", new EJ()); + engine.addSharedFunction("/_t/layout.html"); + } + + @Override + public void renderTo(HttpRequest request, HttpResponse response, Convert convert, HttpScope scope) { + Template template = engine.getTemplate(scope.getReferid()); + String str = template.renderToString(scope.getAttributes()); + response.setContentType("text/html; charset=UTF-8"); + response.finish(str); + } + + @Override + public Class getType() { + return HttpScope.class; + } +} diff --git a/src/com/lxyer/bbs/content/ContentService.java b/src/com/lxyer/bbs/content/ContentService.java index 8da1b1a..4676062 100644 --- a/src/com/lxyer/bbs/content/ContentService.java +++ b/src/com/lxyer/bbs/content/ContentService.java @@ -1,17 +1,16 @@ package com.lxyer.bbs.content; +import com.jfinal.kit.Kv; import com.lxyer.bbs.base.BaseService; import com.lxyer.bbs.base.LxyKit; import com.lxyer.bbs.base.RetCodes; +import com.lxyer.bbs.base.user.UserInfo; import com.lxyer.bbs.base.user.UserService; import com.lxyer.bbs.content.ContentInfo; import com.lxyer.bbs.base.entity.ActLog; import com.lxyer.bbs.content.Content; import com.lxyer.bbs.base.user.User; -import org.redkale.net.http.RestMapping; -import org.redkale.net.http.RestParam; -import org.redkale.net.http.RestService; -import org.redkale.net.http.RestSessionid; +import org.redkale.net.http.*; import org.redkale.service.RetResult; import org.redkale.source.*; import org.redkale.util.SelectColumn; @@ -186,4 +185,32 @@ public class ContentService extends BaseService{ return RetResult.success(); } + @RestMapping(name = "t",auth = false, comment = "测试HttpScope 模板使用") + public HttpScope t(){ + ContentService contentService = this; + Flipper flipper = new Flipper().limit(30).sort("top DESC,createTime DESC"); + //置顶贴 + FilterNode topNode = FilterNode.create("status", FilterExpress.NOTEQUAL, -1).and("top", FilterExpress.GREATERTHAN, 0); + Sheet top = contentService.contentQuery(flipper, topNode); + + //非置顶贴 + FilterNode untopNode = FilterNode.create("status", FilterExpress.NOTEQUAL, -1).and("top", 0); + Sheet contents = contentService.contentQuery(flipper, untopNode); + + //热帖 + /*Flipper flipper2 = new Flipper().limit(8).sort("viewNum DESC"); + Sheet hotView = contentService.contentQuery(flipper2, "");*/ + + //热议 + Flipper flipper3 = new Flipper().limit(8).sort("replyNum DESC"); + Sheet hotReply = contentService.contentQuery(flipper3, ""); + + //最新加入 + Sheet lastReg = userService.lastReg(); + + Kv kv = Kv.by("top", top).set("contents", contents).set("hotReply", hotReply).set("lastReg", lastReg); + + return HttpScope.refer("index.html").attr(kv); + } + }