beetl - 工具类封装
显然,现在已经过了使用模版引擎画界面的时代,使用 beetl 纯粹是为了做消息模版。
- beetl 的语法,相比于 freemarker,用起来会舒服很多;
- 开放系统权限,让客户自己配置消息模版,用户体验也不会太差;
依赖
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.16.1.RELEASE</version>
</dependency>
工具类
import cn.seaboot.commons.core.FastJsonUtils;
import cn.seaboot.commons.exception.SystemError;
import org.beetl.core.Configuration;
import org.beetl.core.GroupTemplate;
import org.beetl.core.Template;
import org.beetl.core.resource.StringTemplateResourceLoader;
import java.util.Map;
/**
* @author Mr.css
* @version 2024-05-09 16:50
*/
public class Beetles {
private Beetles() {
}
private static Configuration config;
private static StringTemplateResourceLoader resourceLoader;
static {
try {
Beetles.resourceLoader = new StringTemplateResourceLoader();
Beetles.config = Configuration.defaultConfiguration();
} catch (Exception e) {
throw new SystemError("Beetles config error: ", e);
}
}
/**
* 渲染模版
*
* @param tpl 字符串模版
* @param model 模型,仅限于对象和 Map
*/
public static String process(String tpl, Object model) {
GroupTemplate gt = new GroupTemplate(resourceLoader, config);
Template t = gt.getTemplate(tpl);
t.binding(FastJsonUtils.toJSONObject(model));
return t.render();
}
/**
* 渲染模版
*
* @param tpl 字符串模版
* @param model 模型,仅限于对象和 Map
*/
public static String process(String tpl, Map<String, Object> model) {
GroupTemplate gt = new GroupTemplate(resourceLoader, config);
Template t = gt.getTemplate(tpl);
t.binding(model);
return t.render();
}
/**
* 获取模版
*
* @param tpl 字符串模版
*/
public static Template getTemplate(String tpl) {
GroupTemplate gt = new GroupTemplate(resourceLoader, config);
return gt.getTemplate(tpl);
}
}
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!