mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix code
This commit is contained in:
parent
e16c734756
commit
9e49100f03
@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (c) 2023 looly(loolly@aliyun.com)
|
||||
* Hutool is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* JDK方式切面实现,基于{@link java.lang.reflect.Proxy}封装
|
||||
*
|
||||
* @author looly
|
||||
*/
|
||||
package org.dromara.hutool.extra.aop.engine.jdk;
|
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (c) 2023 looly(loolly@aliyun.com)
|
||||
* Hutool is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* 切面实现引擎
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package org.dromara.hutool.extra.aop.engine;
|
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (c) 2023 looly(loolly@aliyun.com)
|
||||
* Hutool is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Spring-cglib切面实现
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package org.dromara.hutool.extra.aop.engine.spring;
|
@ -17,6 +17,7 @@ import java.nio.charset.Charset;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.dromara.hutool.core.util.CharsetUtil;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
|
||||
/**
|
||||
* 模板配置
|
||||
|
@ -10,19 +10,17 @@
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
package org.dromara.hutool.extra.template.engine;
|
||||
package org.dromara.hutool.extra.template;
|
||||
|
||||
import org.dromara.hutool.core.lang.Singleton;
|
||||
import org.dromara.hutool.core.reflect.ConstructorUtil;
|
||||
import org.dromara.hutool.core.spi.SpiUtil;
|
||||
import org.dromara.hutool.core.text.StrUtil;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.TemplateException;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
import org.dromara.hutool.log.StaticLog;
|
||||
|
||||
/**
|
||||
* 简单模板工厂,用于根据用户引入的模板引擎jar,自动创建对应的模板引擎对象
|
||||
* 简单模板殷勤工厂,用于根据用户引入的模板引擎jar,自动创建对应的模板引擎对象
|
||||
*
|
||||
* @author looly
|
||||
*/
|
||||
@ -34,8 +32,8 @@ public class TemplateFactory {
|
||||
*
|
||||
* @return 单例的TemplateEngine
|
||||
*/
|
||||
public static TemplateEngine get(){
|
||||
return Singleton.get(TemplateEngine.class.getName(), TemplateFactory::of);
|
||||
public static TemplateEngine getEngine() {
|
||||
return Singleton.get(TemplateEngine.class.getName(), TemplateFactory::createEngine);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -45,8 +43,8 @@ public class TemplateFactory {
|
||||
* @return {@link TemplateEngine}
|
||||
* @since 5.3.3
|
||||
*/
|
||||
public static TemplateEngine of() {
|
||||
return of(new TemplateConfig());
|
||||
public static TemplateEngine createEngine() {
|
||||
return createEngine(new TemplateConfig());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -56,7 +54,7 @@ public class TemplateFactory {
|
||||
* @param config 模板配置,包括编码、模板文件path等信息
|
||||
* @return {@link TemplateEngine}
|
||||
*/
|
||||
public static TemplateEngine of(final TemplateConfig config) {
|
||||
public static TemplateEngine createEngine(final TemplateConfig config) {
|
||||
final TemplateEngine engine = doCreate(config);
|
||||
StaticLog.debug("Use [{}] Engine As Default.", StrUtil.removeSuffix(engine.getClass().getSimpleName(), "Engine"));
|
||||
return engine;
|
||||
@ -72,15 +70,17 @@ public class TemplateFactory {
|
||||
private static TemplateEngine doCreate(final TemplateConfig config) {
|
||||
final Class<? extends TemplateEngine> customEngineClass = config.getCustomEngine();
|
||||
final TemplateEngine engine;
|
||||
if(null != customEngineClass){
|
||||
if (null != customEngineClass) {
|
||||
// 自定义模板引擎
|
||||
engine = ConstructorUtil.newInstance(customEngineClass);
|
||||
}else{
|
||||
} else {
|
||||
// SPI引擎查找
|
||||
engine = SpiUtil.loadFirstAvailable(TemplateEngine.class);
|
||||
}
|
||||
if(null != engine){
|
||||
if (null != engine) {
|
||||
return engine.init(config);
|
||||
}
|
||||
|
||||
throw new TemplateException("No template found !Please add one of template jar to your project !");
|
||||
throw new TemplateException("No template found! Please add one of template jar to your project !");
|
||||
}
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2023 looly(loolly@aliyun.com)
|
||||
* Hutool is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
package org.dromara.hutool.extra.template;
|
||||
|
||||
import org.dromara.hutool.extra.template.engine.TemplateFactory;
|
||||
|
||||
/**
|
||||
* 模板工具类
|
||||
*
|
||||
* @author looly
|
||||
* @since 4.1.0
|
||||
*/
|
||||
public class TemplateUtil {
|
||||
|
||||
/**
|
||||
* 根据用户引入的模板引擎jar,自动创建对应的模板引擎对象,使用默认配置<br>
|
||||
* 推荐创建的引擎单例使用,此方法每次调用会返回新的引擎
|
||||
*
|
||||
* @return {@link TemplateEngine}
|
||||
* @since 4.1.11
|
||||
*/
|
||||
public static TemplateEngine createEngine() {
|
||||
return TemplateFactory.of();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据用户引入的模板引擎jar,自动创建对应的模板引擎对象<br>
|
||||
* 推荐创建的引擎单例使用,此方法每次调用会返回新的引擎
|
||||
*
|
||||
* @param config 模板配置,包括编码、模板文件path等信息
|
||||
* @return {@link TemplateEngine}
|
||||
*/
|
||||
public static TemplateEngine createEngine(final TemplateConfig config) {
|
||||
return TemplateFactory.of(config);
|
||||
}
|
||||
}
|
@ -10,7 +10,10 @@
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
package org.dromara.hutool.extra.template;
|
||||
package org.dromara.hutool.extra.template.engine;
|
||||
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
|
||||
/**
|
||||
* 引擎接口,通过实现此接口从而使用对应的模板引擎
|
@ -15,7 +15,7 @@ package org.dromara.hutool.extra.template.engine.beetl;
|
||||
import org.dromara.hutool.core.io.IORuntimeException;
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
import org.beetl.core.Configuration;
|
||||
import org.beetl.core.GroupTemplate;
|
||||
import org.beetl.core.ResourceLoader;
|
||||
|
@ -18,7 +18,7 @@ import org.dromara.hutool.core.util.ObjUtil;
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig.ResourceMode;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
import com.jfinal.template.source.FileSourceFactory;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -17,7 +17,7 @@ import org.dromara.hutool.core.io.file.FileUtil;
|
||||
import org.dromara.hutool.core.io.IORuntimeException;
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.TemplateException;
|
||||
import freemarker.cache.ClassTemplateLoader;
|
||||
import freemarker.cache.FileTemplateLoader;
|
||||
|
@ -14,7 +14,7 @@ package org.dromara.hutool.extra.template.engine.jetbrick;
|
||||
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
import jetbrick.template.JetEngine;
|
||||
|
||||
import java.util.Properties;
|
||||
|
@ -17,7 +17,7 @@ import org.dromara.hutool.core.io.file.FileUtil;
|
||||
import org.dromara.hutool.core.text.StrUtil;
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
import io.pebbletemplates.pebble.PebbleEngine;
|
||||
import io.pebbletemplates.pebble.loader.*;
|
||||
import org.beetl.core.GroupTemplate;
|
||||
|
@ -14,7 +14,7 @@ package org.dromara.hutool.extra.template.engine.rythm;
|
||||
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
|
@ -23,7 +23,7 @@ import org.dromara.hutool.core.io.file.FileUtil;
|
||||
import org.dromara.hutool.core.text.StrUtil;
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
|
||||
/**
|
||||
* Thymeleaf模板引擎实现
|
||||
|
@ -16,7 +16,7 @@ import org.dromara.hutool.core.text.StrUtil;
|
||||
import org.dromara.hutool.core.util.ObjUtil;
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
import org.apache.velocity.app.Velocity;
|
||||
|
||||
/**
|
||||
|
@ -16,7 +16,7 @@ import org.dromara.hutool.core.io.file.FileUtil;
|
||||
import org.dromara.hutool.core.map.Dict;
|
||||
import org.dromara.hutool.extra.template.Template;
|
||||
import org.dromara.hutool.extra.template.TemplateConfig;
|
||||
import org.dromara.hutool.extra.template.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
import org.dromara.hutool.extra.template.TemplateException;
|
||||
import org.febit.wit.Engine;
|
||||
import org.febit.wit.exceptions.ResourceNotFoundException;
|
||||
|
@ -12,6 +12,10 @@
|
||||
|
||||
/**
|
||||
* 第三方模板引擎封装,提供统一的接口用于适配第三方模板引擎
|
||||
* <pre>
|
||||
*
|
||||
* TemplateFactory =》 TemplateEngine =》 Template =》 内容
|
||||
* </pre>
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
|
@ -10,6 +10,8 @@
|
||||
# See the Mulan PSL v2 for more details.
|
||||
#
|
||||
|
||||
# 实现:org.dromara.hutool.extra.template.engine.TemplateEngine
|
||||
|
||||
org.dromara.hutool.extra.template.engine.beetl.BeetlEngine
|
||||
org.dromara.hutool.extra.template.engine.freemarker.FreemarkerEngine
|
||||
org.dromara.hutool.extra.template.engine.velocity.VelocityEngine
|
@ -2,6 +2,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.jetbrick.JetbrickEngine;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@ -13,7 +14,7 @@ public class JetbrickTest {
|
||||
//classpath模板
|
||||
final TemplateConfig config = new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH)
|
||||
.setCustomEngine(JetbrickEngine.class);
|
||||
final TemplateEngine engine = TemplateUtil.createEngine(config);
|
||||
final TemplateEngine engine = TemplateFactory.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));
|
||||
@ -24,7 +25,7 @@ public class JetbrickTest {
|
||||
// 字符串模板
|
||||
final TemplateConfig config = new TemplateConfig("templates", TemplateConfig.ResourceMode.STRING)
|
||||
.setCustomEngine(JetbrickEngine.class);
|
||||
final TemplateEngine engine = TemplateUtil.createEngine(config);
|
||||
final TemplateEngine engine = TemplateFactory.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));
|
||||
|
@ -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.TemplateConfig.ResourceMode;
|
||||
import org.dromara.hutool.extra.template.engine.TemplateEngine;
|
||||
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;
|
||||
@ -25,18 +26,18 @@ import java.util.Map;
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
public class TemplateUtilTest {
|
||||
public class TemplateFactoryTest {
|
||||
|
||||
@Test
|
||||
public void createEngineTest() {
|
||||
// 字符串模板, 默认模板引擎,此处为Beetl
|
||||
TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig());
|
||||
TemplateEngine engine = TemplateFactory.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 = TemplateUtil.createEngine(new TemplateConfig("templates", ResourceMode.CLASSPATH));
|
||||
engine = TemplateFactory.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);
|
||||
@ -60,7 +61,7 @@ public class TemplateUtilTest {
|
||||
@Test
|
||||
public void rythmEngineTest() {
|
||||
// 字符串模板
|
||||
final TemplateEngine engine = TemplateUtil.createEngine(
|
||||
final TemplateEngine engine = TemplateFactory.createEngine(
|
||||
new TemplateConfig("templates").setCustomEngine(RythmEngine.class));
|
||||
final Template template = engine.getTemplate("hello,@name");
|
||||
final String result = template.render(Dict.of().set("name", "hutool"));
|
||||
@ -75,14 +76,14 @@ public class TemplateUtilTest {
|
||||
@Test
|
||||
public void freemarkerEngineTest() {
|
||||
// 字符串模板
|
||||
TemplateEngine engine = TemplateUtil.createEngine(
|
||||
TemplateEngine engine = TemplateFactory.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 = TemplateUtil.createEngine(
|
||||
engine = TemplateFactory.createEngine(
|
||||
new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(FreemarkerEngine.class));
|
||||
template = engine.getTemplate("freemarker_test.ftl");
|
||||
result = template.render(Dict.of().set("name", "hutool"));
|
||||
@ -92,14 +93,14 @@ public class TemplateUtilTest {
|
||||
@Test
|
||||
public void velocityEngineTest() {
|
||||
// 字符串模板
|
||||
TemplateEngine engine = TemplateUtil.createEngine(
|
||||
TemplateEngine engine = TemplateFactory.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 = TemplateUtil.createEngine(
|
||||
engine = TemplateFactory.createEngine(
|
||||
new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(VelocityEngine.class));
|
||||
template = engine.getTemplate("velocity_test.vtl");
|
||||
result = template.render(Dict.of().set("name", "hutool"));
|
||||
@ -113,7 +114,7 @@ public class TemplateUtilTest {
|
||||
@Test
|
||||
public void enjoyEngineTest() {
|
||||
// 字符串模板
|
||||
TemplateEngine engine = TemplateUtil.createEngine(
|
||||
TemplateEngine engine = TemplateFactory.createEngine(
|
||||
new TemplateConfig("templates").setCustomEngine(EnjoyEngine.class));
|
||||
Template template = engine.getTemplate("#(x + 123)");
|
||||
String result = template.render(Dict.of().set("x", 1));
|
||||
@ -130,14 +131,14 @@ public class TemplateUtilTest {
|
||||
@Test
|
||||
public void thymeleafEngineTest() {
|
||||
// 字符串模板
|
||||
TemplateEngine engine = TemplateUtil.createEngine(
|
||||
TemplateEngine engine = TemplateFactory.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 = TemplateUtil.createEngine(
|
||||
engine = TemplateFactory.createEngine(
|
||||
new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(ThymeleafEngine.class));
|
||||
template = engine.getTemplate("thymeleaf_test.ttl");
|
||||
result = template.render(Dict.of().set("message", "Hutool"));
|
||||
@ -150,13 +151,13 @@ public class TemplateUtilTest {
|
||||
@Test
|
||||
public void pebbleEngineTest() {
|
||||
// 字符串模板
|
||||
TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("templates").setCustomEngine(PebbleTemplateEngine.class));
|
||||
TemplateEngine engine = TemplateFactory.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 = TemplateUtil.createEngine(new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(PebbleTemplateEngine.class));
|
||||
engine = TemplateFactory.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);
|
||||
@ -179,7 +180,7 @@ public class TemplateUtilTest {
|
||||
//classpath模板
|
||||
TemplateConfig config = new TemplateConfig("templates", ResourceMode.CLASSPATH)
|
||||
.setCustomEngine(WitEngine.class);
|
||||
TemplateEngine engine = TemplateUtil.createEngine(config);
|
||||
TemplateEngine engine = TemplateFactory.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));
|
||||
@ -187,7 +188,7 @@ public class TemplateUtilTest {
|
||||
// 字符串模板
|
||||
config = new TemplateConfig("templates", ResourceMode.STRING)
|
||||
.setCustomEngine(WitEngine.class);
|
||||
engine = TemplateUtil.createEngine(config);
|
||||
engine = TemplateFactory.createEngine(config);
|
||||
template = engine.getTemplate("<%var name;%>hello,${name}");
|
||||
result = template.render(Dict.of().set("name", "hutool"));
|
||||
Assertions.assertEquals("hello,hutool", StrUtil.trim(result));
|
@ -2,6 +2,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.thymeleaf.ThymeleafEngine;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
@ -28,7 +29,7 @@ public class ThymeleafTest {
|
||||
@Test
|
||||
@Disabled
|
||||
public void addDialectTest(){
|
||||
final TemplateEngine engine = TemplateUtil.createEngine();
|
||||
final TemplateEngine engine = TemplateFactory.createEngine();
|
||||
if(engine instanceof ThymeleafEngine){
|
||||
final org.thymeleaf.TemplateEngine rawEngine = ((ThymeleafEngine) engine).getRawEngine();
|
||||
rawEngine.addDialect(new StandardDialect());
|
||||
|
@ -2,6 +2,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.velocity.VelocityEngine;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@ -13,7 +14,7 @@ public class VelocityTest {
|
||||
final TemplateConfig config = new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH);
|
||||
config.setCustomEngine(VelocityEngine.class);
|
||||
config.setCharset(CharsetUtil.GBK);
|
||||
final TemplateEngine engine = TemplateUtil.createEngine(config);
|
||||
final TemplateEngine engine = TemplateFactory.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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user