diff --git a/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/JteEngine.java b/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/JteEngine.java index ad7f4a702..e9a65476a 100644 --- a/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/JteEngine.java +++ b/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/JteEngine.java @@ -65,7 +65,7 @@ public class JteEngine implements TemplateEngine { // --------------------------------------------------------------------------------- Constructor end @Override - public TemplateEngine init(TemplateConfig config) { + public TemplateEngine init(final TemplateConfig config) { if (config != null) { this.config = config; } @@ -74,15 +74,15 @@ public class JteEngine implements TemplateEngine { } @Override - public Template getTemplate(String resource) { + public Template getTemplate(final String resource) { if (TemplateConfig.ResourceMode.STRING.equals(config.getResourceMode())) { if (!StrUtil.endWithAny(config.getPath(), ".jte", ".kte")) { - throw new RuntimeException("路径path需以.jte/.kte结尾"); + throw new RuntimeException("path need to end with '.jte' or '.kte'"); } createEngine(new SimpleStringCodeResolver(MapUtil.of(config.getPath(), resource)), contentType); - return new JteTemplate(engine, config.getPath()); + return new JteTemplate(engine, config.getPath(), config.getCharset()); } else { - return new JteTemplate(engine, resource); + return new JteTemplate(engine, resource, config.getCharset()); } } @@ -116,7 +116,7 @@ public class JteEngine implements TemplateEngine { * @param codeResolver CodeResolver * @param contentType ContentType */ - private void createEngine(CodeResolver codeResolver, ContentType contentType) { + private void createEngine(final CodeResolver codeResolver, final ContentType contentType) { this.engine = gg.jte.TemplateEngine.create(codeResolver, contentType); } } diff --git a/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/JteTemplate.java b/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/JteTemplate.java index cb250a494..a9c2ca2cf 100644 --- a/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/JteTemplate.java +++ b/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/JteTemplate.java @@ -19,7 +19,7 @@ import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.extra.template.Template; import java.io.*; -import java.nio.charset.StandardCharsets; +import java.nio.charset.Charset; import java.util.Map; /** @@ -33,20 +33,29 @@ public class JteTemplate implements Template, Serializable { private final TemplateEngine templateEngine; private final String template; + private final Charset charset; - public JteTemplate(TemplateEngine engine, String template) { + /** + * 构造 + * + * @param engine jet引擎 + * @param template 模板 + * @param charset 输出编码 + */ + public JteTemplate(final TemplateEngine engine, final String template, final Charset charset) { this.templateEngine = engine; this.template = template; + this.charset = charset; } @Override - public void render(Map bindingMap, Writer writer) { + public void render(final Map bindingMap, final Writer writer) { templateEngine.render(template, bindingMap, new WriterOutput(writer)); } @Override - public void render(Map bindingMap, OutputStream out) { - this.render(bindingMap, IoUtil.toWriter(out, StandardCharsets.UTF_8)); + public void render(final Map bindingMap, final OutputStream out) { + this.render(bindingMap, IoUtil.toWriter(out, charset)); } /** @@ -55,7 +64,7 @@ public class JteTemplate implements Template, Serializable { * @param model 实体类 * @param writer 输出 */ - public void render(Object model, Writer writer) { + public void render(final Object model, final Writer writer) { templateEngine.render(template, model, new WriterOutput(writer)); } @@ -65,8 +74,8 @@ public class JteTemplate implements Template, Serializable { * @param model 实体类 * @param out 输出 */ - public void render(Object model, OutputStream out) { - render(model, IoUtil.toWriter(out, StandardCharsets.UTF_8)); + public void render(final Object model, final OutputStream out) { + render(model, IoUtil.toWriter(out, charset)); } /** diff --git a/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/SimpleStringCodeResolver.java b/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/SimpleStringCodeResolver.java index b9a6b9563..727e8a973 100644 --- a/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/SimpleStringCodeResolver.java +++ b/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/jte/SimpleStringCodeResolver.java @@ -17,17 +17,21 @@ public class SimpleStringCodeResolver implements CodeResolver { private final Map templates; - public SimpleStringCodeResolver(Map templates) { + /** + * 构造 + * @param templates 参数 + */ + public SimpleStringCodeResolver(final Map templates) { this.templates = templates; } @Override - public String resolve(String name) { + public String resolve(final String name) { return templates.get(name); } @Override - public long getLastModified(String name) { + public long getLastModified(final String name) { return 0L; }