mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add wit support
This commit is contained in:
parent
825c55a2e2
commit
68d5cf35d4
@ -9,6 +9,8 @@ import cn.hutool.extra.template.TemplateConfig.ResourceMode;
|
||||
import cn.hutool.extra.template.TemplateEngine;
|
||||
import com.jfinal.template.source.FileSourceFactory;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Enjoy库的引擎包装
|
||||
*
|
||||
@ -99,7 +101,8 @@ public class EnjoyEngine implements TemplateEngine {
|
||||
break;
|
||||
case WEB_ROOT:
|
||||
engine.setSourceFactory(new FileSourceFactory());
|
||||
engine.setBaseTemplatePath(FileUtil.getAbsolutePath(FileUtil.getWebRoot()));
|
||||
final File root = FileUtil.file(FileUtil.getWebRoot(), config.getPath());
|
||||
engine.setBaseTemplatePath(FileUtil.getAbsolutePath(root));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -1,11 +1,16 @@
|
||||
package cn.hutool.extra.template.engine.wit;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.extra.template.Template;
|
||||
import cn.hutool.extra.template.TemplateConfig;
|
||||
import cn.hutool.extra.template.TemplateEngine;
|
||||
import cn.hutool.extra.template.TemplateException;
|
||||
import org.febit.wit.Engine;
|
||||
import org.febit.wit.exceptions.ResourceNotFoundException;
|
||||
import org.febit.wit.util.Props;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Wit(http://zqq90.github.io/webit-script/)模板引擎封装
|
||||
@ -75,10 +80,34 @@ public class WitEngine implements TemplateEngine {
|
||||
* @return {@link Engine}
|
||||
*/
|
||||
private static Engine createEngine(TemplateConfig config) {
|
||||
if (null == config) {
|
||||
config = TemplateConfig.DEFAULT;
|
||||
final Props configProps = Engine.createConfigProps("");
|
||||
Dict dict = null;
|
||||
|
||||
if (null != config) {
|
||||
dict = Dict.create();
|
||||
// 自定义编码
|
||||
dict.set("DEFAULT_ENCODING", config.getCharset());
|
||||
|
||||
switch (config.getResourceMode()){
|
||||
case CLASSPATH:
|
||||
configProps.set("pathLoader.root", config.getPath());
|
||||
configProps.set("routeLoader.defaultLoader", "classpathLoader");
|
||||
break;
|
||||
case STRING:
|
||||
configProps.set("routeLoader.defaultLoader", "stringLoader");
|
||||
break;
|
||||
case FILE:
|
||||
configProps.set("pathLoader.root", config.getPath());
|
||||
configProps.set("routeLoader.defaultLoader", "fileLoader");
|
||||
break;
|
||||
case WEB_ROOT:
|
||||
final File root = FileUtil.file(FileUtil.getWebRoot(), config.getPath());
|
||||
configProps.set("pathLoader.root", FileUtil.getAbsolutePath(root));
|
||||
configProps.set("routeLoader.defaultLoader", "fileLoader");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return Engine.create();
|
||||
return Engine.create(configProps,dict);
|
||||
}
|
||||
}
|
||||
|
@ -157,10 +157,20 @@ public class TemplateUtilTest {
|
||||
|
||||
@Test
|
||||
public void WitEngineTest() {
|
||||
TemplateEngine engine = TemplateUtil.createEngine(
|
||||
new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(WitEngine.class));
|
||||
Template template = engine.getTemplate("/templates/wit_test.wit");
|
||||
//classpath模板
|
||||
TemplateConfig config = new TemplateConfig("templates", ResourceMode.CLASSPATH)
|
||||
.setCustomEngine(WitEngine.class);
|
||||
TemplateEngine engine = TemplateUtil.createEngine(config);
|
||||
Template template = engine.getTemplate("/wit_test.wit");
|
||||
String result = template.render(Dict.create().set("name", "hutool"));
|
||||
Assert.assertEquals("hello,hutool", StrUtil.trim(result));
|
||||
|
||||
// 字符串模板
|
||||
config = new TemplateConfig("templates", ResourceMode.STRING)
|
||||
.setCustomEngine(WitEngine.class);
|
||||
engine = TemplateUtil.createEngine(config);
|
||||
template = engine.getTemplate("<%var name;%>hello,${name}");
|
||||
result = template.render(Dict.create().set("name", "hutool"));
|
||||
Assert.assertEquals("hello,hutool", StrUtil.trim(result));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user