This commit is contained in:
Looly
2023-04-24 11:35:14 +08:00
parent 9e49100f03
commit e67bbdec19
29 changed files with 361 additions and 203 deletions

View File

@@ -3,6 +3,7 @@ package org.dromara.hutool.extra.template;
import org.dromara.hutool.core.map.Dict;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.extra.template.engine.TemplateEngine;
import org.dromara.hutool.extra.template.engine.TemplateEngineFactory;
import org.dromara.hutool.extra.template.engine.jetbrick.JetbrickEngine;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -14,7 +15,7 @@ public class JetbrickTest {
//classpath模板
final TemplateConfig config = new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH)
.setCustomEngine(JetbrickEngine.class);
final TemplateEngine engine = TemplateFactory.createEngine(config);
final TemplateEngine engine = TemplateEngineFactory.createEngine(config);
final Template template = engine.getTemplate("jetbrick_test.jetx");
final String result = template.render(Dict.of().set("name", "hutool"));
Assertions.assertEquals("你好,hutool", StrUtil.trim(result));
@@ -25,7 +26,7 @@ public class JetbrickTest {
// 字符串模板
final TemplateConfig config = new TemplateConfig("templates", TemplateConfig.ResourceMode.STRING)
.setCustomEngine(JetbrickEngine.class);
final TemplateEngine engine = TemplateFactory.createEngine(config);
final TemplateEngine engine = TemplateEngineFactory.createEngine(config);
final Template template = engine.getTemplate("hello,${name}");
final String result = template.render(Dict.of().set("name", "hutool"));
Assertions.assertEquals("hello,hutool", StrUtil.trim(result));

View File

@@ -4,6 +4,7 @@ import org.dromara.hutool.core.map.Dict;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.extra.template.TemplateConfig.ResourceMode;
import org.dromara.hutool.extra.template.engine.TemplateEngine;
import org.dromara.hutool.extra.template.engine.TemplateEngineFactory;
import org.dromara.hutool.extra.template.engine.beetl.BeetlEngine;
import org.dromara.hutool.extra.template.engine.enjoy.EnjoyEngine;
import org.dromara.hutool.extra.template.engine.freemarker.FreemarkerEngine;
@@ -31,13 +32,13 @@ public class TemplateFactoryTest {
@Test
public void createEngineTest() {
// 字符串模板, 默认模板引擎此处为Beetl
TemplateEngine engine = TemplateFactory.createEngine(new TemplateConfig());
TemplateEngine engine = TemplateEngineFactory.createEngine(new TemplateConfig());
final Template template = engine.getTemplate("hello,${name}");
final String result = template.render(Dict.of().set("name", "hutool"));
Assertions.assertEquals("hello,hutool", result);
// classpath中获取模板
engine = TemplateFactory.createEngine(new TemplateConfig("templates", ResourceMode.CLASSPATH));
engine = TemplateEngineFactory.createEngine(new TemplateConfig("templates", ResourceMode.CLASSPATH));
final Template template2 = engine.getTemplate("beetl_test.btl");
final String result2 = template2.render(Dict.of().set("name", "hutool"));
Assertions.assertEquals("hello,hutool", result2);
@@ -61,7 +62,7 @@ public class TemplateFactoryTest {
@Test
public void rythmEngineTest() {
// 字符串模板
final TemplateEngine engine = TemplateFactory.createEngine(
final TemplateEngine engine = TemplateEngineFactory.createEngine(
new TemplateConfig("templates").setCustomEngine(RythmEngine.class));
final Template template = engine.getTemplate("hello,@name");
final String result = template.render(Dict.of().set("name", "hutool"));
@@ -76,14 +77,14 @@ public class TemplateFactoryTest {
@Test
public void freemarkerEngineTest() {
// 字符串模板
TemplateEngine engine = TemplateFactory.createEngine(
TemplateEngine engine = TemplateEngineFactory.createEngine(
new TemplateConfig("templates", ResourceMode.STRING).setCustomEngine(FreemarkerEngine.class));
Template template = engine.getTemplate("hello,${name}");
String result = template.render(Dict.of().set("name", "hutool"));
Assertions.assertEquals("hello,hutool", result);
//ClassPath模板
engine = TemplateFactory.createEngine(
engine = TemplateEngineFactory.createEngine(
new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(FreemarkerEngine.class));
template = engine.getTemplate("freemarker_test.ftl");
result = template.render(Dict.of().set("name", "hutool"));
@@ -93,14 +94,14 @@ public class TemplateFactoryTest {
@Test
public void velocityEngineTest() {
// 字符串模板
TemplateEngine engine = TemplateFactory.createEngine(
TemplateEngine engine = TemplateEngineFactory.createEngine(
new TemplateConfig("templates", ResourceMode.STRING).setCustomEngine(VelocityEngine.class));
Template template = engine.getTemplate("你好,$name");
String result = template.render(Dict.of().set("name", "hutool"));
Assertions.assertEquals("你好,hutool", result);
//ClassPath模板
engine = TemplateFactory.createEngine(
engine = TemplateEngineFactory.createEngine(
new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(VelocityEngine.class));
template = engine.getTemplate("velocity_test.vtl");
result = template.render(Dict.of().set("name", "hutool"));
@@ -114,7 +115,7 @@ public class TemplateFactoryTest {
@Test
public void enjoyEngineTest() {
// 字符串模板
TemplateEngine engine = TemplateFactory.createEngine(
TemplateEngine engine = TemplateEngineFactory.createEngine(
new TemplateConfig("templates").setCustomEngine(EnjoyEngine.class));
Template template = engine.getTemplate("#(x + 123)");
String result = template.render(Dict.of().set("x", 1));
@@ -131,14 +132,14 @@ public class TemplateFactoryTest {
@Test
public void thymeleafEngineTest() {
// 字符串模板
TemplateEngine engine = TemplateFactory.createEngine(
TemplateEngine engine = TemplateEngineFactory.createEngine(
new TemplateConfig("templates").setCustomEngine(ThymeleafEngine.class));
Template template = engine.getTemplate("<h3 th:text=\"${message}\"></h3>");
String result = template.render(Dict.of().set("message", "Hutool"));
Assertions.assertEquals("<h3>Hutool</h3>", result);
//ClassPath模板
engine = TemplateFactory.createEngine(
engine = TemplateEngineFactory.createEngine(
new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(ThymeleafEngine.class));
template = engine.getTemplate("thymeleaf_test.ttl");
result = template.render(Dict.of().set("message", "Hutool"));
@@ -151,13 +152,13 @@ public class TemplateFactoryTest {
@Test
public void pebbleEngineTest() {
// 字符串模板
TemplateEngine engine = TemplateFactory.createEngine(new TemplateConfig("templates").setCustomEngine(PebbleTemplateEngine.class));
TemplateEngine engine = TemplateEngineFactory.createEngine(new TemplateConfig("templates").setCustomEngine(PebbleTemplateEngine.class));
Template template = engine.getTemplate("<h3>{{ message }}</h3>");
String result = template.render(Dict.of().set("message", "Hutool"));
Assertions.assertEquals("<h3>Hutool</h3>", result);
//ClassPath模板
engine = TemplateFactory.createEngine(new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(PebbleTemplateEngine.class));
engine = TemplateEngineFactory.createEngine(new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(PebbleTemplateEngine.class));
template = engine.getTemplate("pebble_test.peb");
result = template.render(Dict.of().set("name", "Hutool"));
Assertions.assertEquals("hello, Hutool", result);
@@ -180,7 +181,7 @@ public class TemplateFactoryTest {
//classpath模板
TemplateConfig config = new TemplateConfig("templates", ResourceMode.CLASSPATH)
.setCustomEngine(WitEngine.class);
TemplateEngine engine = TemplateFactory.createEngine(config);
TemplateEngine engine = TemplateEngineFactory.createEngine(config);
Template template = engine.getTemplate("/wit_test.wit");
String result = template.render(Dict.of().set("name", "hutool"));
Assertions.assertEquals("hello,hutool", StrUtil.trim(result));
@@ -188,7 +189,7 @@ public class TemplateFactoryTest {
// 字符串模板
config = new TemplateConfig("templates", ResourceMode.STRING)
.setCustomEngine(WitEngine.class);
engine = TemplateFactory.createEngine(config);
engine = TemplateEngineFactory.createEngine(config);
template = engine.getTemplate("<%var name;%>hello,${name}");
result = template.render(Dict.of().set("name", "hutool"));
Assertions.assertEquals("hello,hutool", StrUtil.trim(result));

View File

@@ -3,6 +3,7 @@ package org.dromara.hutool.extra.template;
import org.dromara.hutool.core.date.DateUtil;
import org.dromara.hutool.core.map.Dict;
import org.dromara.hutool.extra.template.engine.TemplateEngine;
import org.dromara.hutool.extra.template.engine.TemplateEngineFactory;
import org.dromara.hutool.extra.template.engine.thymeleaf.ThymeleafEngine;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Disabled;
@@ -29,7 +30,7 @@ public class ThymeleafTest {
@Test
@Disabled
public void addDialectTest(){
final TemplateEngine engine = TemplateFactory.createEngine();
final TemplateEngine engine = TemplateEngineFactory.createEngine();
if(engine instanceof ThymeleafEngine){
final org.thymeleaf.TemplateEngine rawEngine = ((ThymeleafEngine) engine).getRawEngine();
rawEngine.addDialect(new StandardDialect());

View File

@@ -3,6 +3,7 @@ package org.dromara.hutool.extra.template;
import org.dromara.hutool.core.map.Dict;
import org.dromara.hutool.core.util.CharsetUtil;
import org.dromara.hutool.extra.template.engine.TemplateEngine;
import org.dromara.hutool.extra.template.engine.TemplateEngineFactory;
import org.dromara.hutool.extra.template.engine.velocity.VelocityEngine;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -14,7 +15,7 @@ public class VelocityTest {
final TemplateConfig config = new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH);
config.setCustomEngine(VelocityEngine.class);
config.setCharset(CharsetUtil.GBK);
final TemplateEngine engine = TemplateFactory.createEngine(config);
final TemplateEngine engine = TemplateEngineFactory.createEngine(config);
final Template template = engine.getTemplate("velocity_test_gbk.vtl");
final String result = template.render(Dict.of().set("name", "hutool"));
Assertions.assertEquals("你好,hutool", result);