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 e9a65476a..e69c8fc00 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 @@ -32,9 +32,9 @@ import java.nio.file.Paths; */ public class JteEngine implements TemplateEngine { + private final ContentType contentType = ContentType.Plain; private TemplateConfig config = TemplateConfig.DEFAULT; private gg.jte.TemplateEngine engine; - private final ContentType contentType = ContentType.Plain; // --------------------------------------------------------------------------------- Constructor start @@ -60,7 +60,7 @@ public class JteEngine implements TemplateEngine { * @param codeResolver {@link CodeResolver} */ public JteEngine(final CodeResolver codeResolver) { - createEngine(codeResolver, contentType); + this.engine = createEngine(codeResolver); } // --------------------------------------------------------------------------------- Constructor end @@ -76,11 +76,13 @@ public class JteEngine implements TemplateEngine { @Override public Template getTemplate(final String resource) { if (TemplateConfig.ResourceMode.STRING.equals(config.getResourceMode())) { - if (!StrUtil.endWithAny(config.getPath(), ".jte", ".kte")) { - throw new RuntimeException("path need to end with '.jte' or '.kte'"); + String path = config.getPath(); + if(!StrUtil.endWithAny(path, ".jte", ".kte")){ + path = StrUtil.addSuffixIfNot(StrUtil.defaultIfEmpty(path, "hutool"), ".jte"); } - createEngine(new SimpleStringCodeResolver(MapUtil.of(config.getPath(), resource)), contentType); - return new JteTemplate(engine, config.getPath(), config.getCharset()); + return new JteTemplate(createEngine( + new SimpleStringCodeResolver(MapUtil.of(path, resource))) + , path, config.getCharset()); } else { return new JteTemplate(engine, resource, config.getCharset()); } @@ -97,10 +99,10 @@ public class JteEngine implements TemplateEngine { private void createEngine() { switch (config.getResourceMode()) { case CLASSPATH: - createEngine(new ResourceCodeResolver(config.getPath(), JteEngine.class.getClassLoader()), contentType); + this.engine = createEngine(new ResourceCodeResolver(config.getPath(), JteEngine.class.getClassLoader())); break; case FILE: - createEngine(new DirectoryCodeResolver(Paths.get(config.getPath())), contentType); + this.engine = createEngine(new DirectoryCodeResolver(Paths.get(config.getPath()))); break; case STRING: // 这里无法直接创建引擎 @@ -114,9 +116,8 @@ public class JteEngine implements TemplateEngine { * 创建引擎 {@link gg.jte.TemplateEngine } * * @param codeResolver CodeResolver - * @param contentType ContentType */ - private void createEngine(final CodeResolver codeResolver, final ContentType contentType) { - this.engine = gg.jte.TemplateEngine.create(codeResolver, contentType); + private gg.jte.TemplateEngine createEngine(final CodeResolver codeResolver) { + return gg.jte.TemplateEngine.create(codeResolver, this.contentType); } } diff --git a/hutool-extra/src/test/java/org/dromara/hutool/extra/template/TemplateFactoryTest.java b/hutool-extra/src/test/java/org/dromara/hutool/extra/template/TemplateFactoryTest.java index dbfb09ffb..55331eec0 100644 --- a/hutool-extra/src/test/java/org/dromara/hutool/extra/template/TemplateFactoryTest.java +++ b/hutool-extra/src/test/java/org/dromara/hutool/extra/template/TemplateFactoryTest.java @@ -162,10 +162,10 @@ public class TemplateFactoryTest { public void jteEngineTest() { // 字符串模板 TemplateEngine engine = TemplateEngineFactory.createEngine( - new TemplateConfig("templates.jte").setCustomEngine(JteEngine.class)); + new TemplateConfig().setCustomEngine(JteEngine.class)); Template template = engine.getTemplate("@param java.util.HashMap map\n" + "

${map.get(\"message\")}

"); - Map model = new HashMap<>(); + final Map model = new HashMap<>(); model.put("message", "Hutool"); String result = template.render(model); Assertions.assertEquals("

Hutool

", result);