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);
}
}