From 40698060281dc9765c2a5d4cb66c748ba3a3a656 Mon Sep 17 00:00:00 2001 From: James Date: Sun, 13 Oct 2019 22:36:49 +0800 Subject: [PATCH] enjoy 4.6 release ^_^ --- README.md | 2 +- pom.xml | 2 +- src/main/java/com/jfinal/template/Template.java | 8 ++++++++ .../com/jfinal/template/expr/ast/MethodKit.java | 8 +++++--- .../template/ext/directive/NumberDirective.java | 16 +++++----------- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 4e48c8a..2007b2b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Enjoy 是基于 Java 语言的极轻量极魔板引擎。极轻量级仅 227 KB com.jfinal enjoy - 4.5 + 4.6 ``` diff --git a/pom.xml b/pom.xml index 94248df..0deddce 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.jfinal enjoy - 4.5 + 4.6 jar diff --git a/src/main/java/com/jfinal/template/Template.java b/src/main/java/com/jfinal/template/Template.java index 7d01b96..d042e42 100644 --- a/src/main/java/com/jfinal/template/Template.java +++ b/src/main/java/com/jfinal/template/Template.java @@ -102,6 +102,14 @@ public class Template { } } + /** + * 支持无 data 参数,渲染到 String 中去
+ * 适用于数据在模板中通过表达式和语句直接计算得出等等应用场景 + */ + public String renderToString() { + return renderToString(null); + } + /** * 渲染到 StringBuilder 中去 */ diff --git a/src/main/java/com/jfinal/template/expr/ast/MethodKit.java b/src/main/java/com/jfinal/template/expr/ast/MethodKit.java index b1cdce6..872f264 100644 --- a/src/main/java/com/jfinal/template/expr/ast/MethodKit.java +++ b/src/main/java/com/jfinal/template/expr/ast/MethodKit.java @@ -49,7 +49,9 @@ public class MethodKit { System.class, Runtime.class, Thread.class, Class.class, ClassLoader.class, File.class, Compiler.class, InheritableThreadLocal.class, Package.class, Process.class, RuntimePermission.class, SecurityManager.class, ThreadGroup.class, ThreadLocal.class, - java.lang.reflect.Method.class + + java.lang.reflect.Method.class, + java.lang.reflect.Proxy.class }; for (Class c : cs) { forbiddenClasses.add(c); @@ -62,8 +64,8 @@ public class MethodKit { "getClass", "getDeclaringClass", "forName", "newInstance", "getClassLoader", "invoke", // "getMethod", "getMethods", // "getField", "getFields", "notify", "notifyAll", "wait", - "load", "exit", "loadLibrary", "halt", - "stop", "suspend", "resume", "setDaemon", "setPriority", + "exit", "loadLibrary", "halt", // "load", + "stop", "suspend", "resume" // "setDaemon", "setPriority" }; for (String m : ms) { forbiddenMethods.add(m); diff --git a/src/main/java/com/jfinal/template/ext/directive/NumberDirective.java b/src/main/java/com/jfinal/template/ext/directive/NumberDirective.java index 1df7cdc..c76fa99 100644 --- a/src/main/java/com/jfinal/template/ext/directive/NumberDirective.java +++ b/src/main/java/com/jfinal/template/ext/directive/NumberDirective.java @@ -53,10 +53,9 @@ public class NumberDirective extends Directive { private Expr valueExpr; private Expr patternExpr; - private int paraNum; public void setExprList(ExprList exprList) { - this.paraNum = exprList.length(); + int paraNum = exprList.length(); if (paraNum == 0) { throw new ParseException("The parameter of #number directive can not be blank", location); } @@ -64,13 +63,8 @@ public class NumberDirective extends Directive { throw new ParseException("Wrong number parameter of #number directive, two parameters allowed at most", location); } - if (paraNum == 1) { - this.valueExpr = exprList.getExpr(0); - this.patternExpr = null; - } else if (paraNum == 2) { - this.valueExpr = exprList.getExpr(0); - this.patternExpr = exprList.getExpr(1); - } + valueExpr = exprList.getExpr(0); + patternExpr = (paraNum == 1 ? null : exprList.getExpr(1)); } public void exec(Env env, Scope scope, Writer writer) { @@ -79,9 +73,9 @@ public class NumberDirective extends Directive { return ; } - if (paraNum == 1) { + if (patternExpr == null) { outputWithoutPattern(writer, value); - } else if (paraNum == 2) { + } else { outputWithPattern(scope, writer, value); } }