Files
meta-kit/src/main/java/net/tccn/base/TplKit.java
lxyer efdcc26fc9 1、代码优化,重构逻辑,界面html
2、解决TplKit 因升级导致的模板文件找不到(退回原版本)
2019-04-19 18:16:07 +08:00

135 lines
2.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package net.tccn.base;
import com.jfinal.plugin.activerecord.SqlPara;
import com.jfinal.plugin.activerecord.sql.SqlKit;
import java.io.File;
import java.io.FileFilter;
import java.util.Map;
/**
* Created by liangxianyou at 2018/7/11 11:05.
*/
public class TplKit {
private static TplKit tplKit = null;
private static SqlKit kit = null;
private static boolean hadParse = false;// 标记 是否已经解析
public static TplKit use() {
return use(false);
}
/**
* 获取单列的实例对象,
*
* @param isDev
* 是否开发模式, 多次调用只有第一次的 isDev生效
* @return
*/
public static TplKit use(boolean isDev) {
synchronized (TplKit.class) {
if (tplKit == null) {
tplKit = new TplKit(isDev);
}
}
return tplKit;
}
private TplKit(boolean isDev) {
kit = new SqlKit("tplKit", isDev);
kit.setBaseSqlTemplatePath("/");
}
/**
* [添加文件 到模板解析器]
*
* @param tplPath
* 文件路劲
*/
public void addTpl(String tplPath) {
kit.addSqlTemplate(tplPath);
hadParse = false;
System.out.println("addTpl" + tplPath);
}
/**
* 添加文件/目录 到模板解析器
*
* @param tplFile
* 模板文件/目录
*/
public void addTpl(File tplFile) {
addTpl(tplFile, null);
hadParse = false;
}
/**
* 添加文件/目录 到模板解析器
*
* @param tplFile
* 文件/目录
* @param filter
* 文件过滤器
*/
public void addTpl(File tplFile, FileFilter filter) {
if (tplFile.isFile()) {
addTpl(tplFile.getPath());
//addTpl(tplFile.getPath().replace(clazzRoot, "")); //以classes路径开始的路径
} else if (tplFile.isDirectory()) {
File[] files = tplFile.listFiles(filter);
for (int i = 0; i < files.length; i++) {
addTpl(files[i], filter);
}
}
hadParse = false;
}
/**
* 获取模板
*
* @param key
* 模板id
* @return
*/
public String getTpl(String key) {
if (!hadParse)
parseTpl();
return kit.getSql(key);
}
/**
* 获取模板
*
* @param key
* 模板id
* @param data
* 模板渲染数据
* @return
*/
public String getTpl(String key, Map data) {
if (!hadParse)
parseTpl();
SqlPara sqlPara = kit.getSqlPara(key, data);
return sqlPara.getSql().replaceAll("[\\s]+", " ");
}
public String getTpl(String key, Map data, boolean delSpace) {
if (!hadParse)
parseTpl();
SqlPara sqlPara = kit.getSqlPara(key, data);
return delSpace ? sqlPara.getSql().replaceAll("[\\s]+", " ") : sqlPara.getSql();
}
public String getTpl(String key, Object m) {
if (!hadParse)
parseTpl();
SqlPara sqlPara = kit.getSqlPara(key, m);
return sqlPara.getSql();
}
public void parseTpl() {
kit.parseSqlTemplate();
}
}