snippetTemplateUtil
说明
在模板中通过 ${snippetTemplateUtil} 方式可以直接使用。
主要的方法和功能请参看源码。
Java源码
package com.shareyi.molicode.common.utils
import com.shareyi.molicode.common.vo.code.ColumnVo
import com.shareyi.molicode.common.vo.code.DictVo
import com.shareyi.molicode.common.vo.code.SnippetTemplateVo
/**
* 代码片段工具类
*
*/
class SnippetTemplateUtil {
Map<String, SnippetTemplateVo> snippetTemplateMap;
Map<String, DictVo> dictMap;
Map<String, Object> binding;
TemplateUtil templateUtil;
/**
* 获取字典项内容
*
* 通过column对象中的dictName 查找字典数据
* 通过字典数据,列定义,模板来生成字典项内容
* 其中
* @param column 列定义
* @param templateId 字典项模板id
* @return
*/
String getDictTemplate(ColumnVo column, String templateId) {
DictVo dict = dictMap.get(column.dictName);
if (dict == null) {
return "";
}
SnippetTemplateVo snippetTemplate = snippetTemplateMap.get(templateId);
if (snippetTemplate == null) {
return "";
}
def templateBinding = ["dict": dict, "optionList": dict.optionList, "column": column, "templateId": templateId];
templateBinding.putAll(binding);
String result = "";
try {
result = getTemplateUtil().renderContent(snippetTemplate.template, templateBinding);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 用 列数据+模板片段 生成内容
* 如果通过模板id未找到模板,则返回空串
* @param column 列定义
* @param templateId 模板id
* @return 生成的内容
*/
String getTemplate(ColumnVo column, String templateId) {
SnippetTemplateVo snippetTemplate = snippetTemplateMap.get(templateId);
if (snippetTemplate == null) {
return "";
}
def templateBinding = ["column": column, "templateId": templateId];
templateBinding.putAll(binding);
String result = "";
try {
result = getTemplateUtil().renderContent(snippetTemplate.template, templateBinding);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 用 模板片段 生成内容
* 如果通过模板id未找到模板,则返回空串
* @param templateId 模板id
* @return 生成的内容
*/
String getTemplate(String templateId) {
SnippetTemplateVo snippetTemplate = snippetTemplateMap.get(templateId);
if (snippetTemplate == null) {
return "";
}
def templateBinding = ["templateId": templateId];
templateBinding.putAll(binding);
String result = "";
try {
result = getTemplateUtil().renderContent(snippetTemplate.template, templateBinding);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 用 模板片段 生成内容
* 如果通过模板id未找到模板,则返回空串
* @param dataMap
* @param templateId 模板id
* @return 生成的内容
*/
String getTemplateByMap(Map dataMap, String templateId) {
SnippetTemplateVo snippetTemplate = snippetTemplateMap.get(templateId);
if (snippetTemplate == null) {
return "";
}
if (dataMap == null) {
dataMap = [:];
}
dataMap.put("templateId", templateId);
dataMap.putAll(binding);
String result = "";
try {
result = getTemplateUtil().renderContent(snippetTemplate.template, dataMap);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 用 模板片段 生成内容
* 如果通过模板id未找到模板,则返回空串
* @param dataMap
* @param templateId 模板id
* @return 生成的内容
*/
String getTemplateByData(Object data, String templateId) {
SnippetTemplateVo snippetTemplate = snippetTemplateMap.get(templateId);
if (snippetTemplate == null) {
return "";
}
def templateBinding = ["templateId": templateId, "data": data];
templateBinding.putAll(binding);
String result = "";
try {
result = getTemplateUtil().renderContent(snippetTemplate.template, templateBinding);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
TemplateUtil getTemplateUtil() {
if (templateUtil == null) {
templateUtil = new TemplateUtil();
}
return templateUtil;
}
}