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