Browse Source

jfinal 5.0.6 release ^_^

James 3 years ago
parent
commit
bbc322d60f
1 changed files with 12 additions and 8 deletions
  1. 12 8
      src/main/java/com/jfinal/template/Template.java

+ 12 - 8
src/main/java/com/jfinal/template/Template.java

@@ -209,8 +209,8 @@ public class Template {
 	
 	
 	// ---------
 	// ---------
 	
 	
-    private void close(boolean autoClose, AutoCloseable autoCloseable) {
-        if (autoClose && autoCloseable != null) {
+    private void close(AutoCloseable autoCloseable) {
+        if (autoCloseable != null) {
             try {
             try {
                 autoCloseable.close();
                 autoCloseable.close();
             } catch (Exception ignored) {
             } catch (Exception ignored) {
@@ -222,10 +222,12 @@ public class Template {
      * 渲染到 OutputStream 中去,autoCloseOutputStream 指定是否自动关闭 OutputStream
      * 渲染到 OutputStream 中去,autoCloseOutputStream 指定是否自动关闭 OutputStream
      */
      */
     public void render(Map<?, ?> data, OutputStream outputStream, boolean autoCloseOutputStream) {
     public void render(Map<?, ?> data, OutputStream outputStream, boolean autoCloseOutputStream) {
-        try {
-            render(data, outputStream);
+        try (ByteWriter byteWriter = env.engineConfig.writerBuffer.getByteWriter(outputStream)) {
+            ast.exec(env, new Scope(data, env.engineConfig.sharedObjectMap), byteWriter);
         } finally {
         } finally {
-            close(autoCloseOutputStream, outputStream);
+            if (autoCloseOutputStream) {
+                close(outputStream);
+            }
         }
         }
     }
     }
     
     
@@ -233,10 +235,12 @@ public class Template {
      * 渲染到 Writer 中去,autoCloseWriter 指定是否自动关闭 Writer
      * 渲染到 Writer 中去,autoCloseWriter 指定是否自动关闭 Writer
      */
      */
     public void render(Map<?, ?> data, Writer writer, boolean autoCloseWriter) {
     public void render(Map<?, ?> data, Writer writer, boolean autoCloseWriter) {
-        try {
-            render(data, writer);
+        try (CharWriter charWriter = env.engineConfig.writerBuffer.getCharWriter(writer)) {
+            ast.exec(env, new Scope(data, env.engineConfig.sharedObjectMap), charWriter);
         } finally {
         } finally {
-            close(autoCloseWriter, writer);
+            if (autoCloseWriter) {
+                close(writer);
+            }
         }
         }
     }
     }
 }
 }