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 cn.hutool.extra.template.TemplateEngine;
|
||||||
import com.jfinal.template.source.FileSourceFactory;
|
import com.jfinal.template.source.FileSourceFactory;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enjoy库的引擎包装
|
* Enjoy库的引擎包装
|
||||||
*
|
*
|
||||||
@ -99,7 +101,8 @@ public class EnjoyEngine implements TemplateEngine {
|
|||||||
break;
|
break;
|
||||||
case WEB_ROOT:
|
case WEB_ROOT:
|
||||||
engine.setSourceFactory(new FileSourceFactory());
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
package cn.hutool.extra.template.engine.wit;
|
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.Template;
|
||||||
import cn.hutool.extra.template.TemplateConfig;
|
import cn.hutool.extra.template.TemplateConfig;
|
||||||
import cn.hutool.extra.template.TemplateEngine;
|
import cn.hutool.extra.template.TemplateEngine;
|
||||||
import cn.hutool.extra.template.TemplateException;
|
import cn.hutool.extra.template.TemplateException;
|
||||||
import org.febit.wit.Engine;
|
import org.febit.wit.Engine;
|
||||||
import org.febit.wit.exceptions.ResourceNotFoundException;
|
import org.febit.wit.exceptions.ResourceNotFoundException;
|
||||||
|
import org.febit.wit.util.Props;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wit(http://zqq90.github.io/webit-script/)模板引擎封装
|
* Wit(http://zqq90.github.io/webit-script/)模板引擎封装
|
||||||
@ -75,10 +80,34 @@ public class WitEngine implements TemplateEngine {
|
|||||||
* @return {@link Engine}
|
* @return {@link Engine}
|
||||||
*/
|
*/
|
||||||
private static Engine createEngine(TemplateConfig config) {
|
private static Engine createEngine(TemplateConfig config) {
|
||||||
if (null == config) {
|
final Props configProps = Engine.createConfigProps("");
|
||||||
config = TemplateConfig.DEFAULT;
|
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
|
@Test
|
||||||
public void WitEngineTest() {
|
public void WitEngineTest() {
|
||||||
TemplateEngine engine = TemplateUtil.createEngine(
|
//classpath模板
|
||||||
new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(WitEngine.class));
|
TemplateConfig config = new TemplateConfig("templates", ResourceMode.CLASSPATH)
|
||||||
Template template = engine.getTemplate("/templates/wit_test.wit");
|
.setCustomEngine(WitEngine.class);
|
||||||
|
TemplateEngine engine = TemplateUtil.createEngine(config);
|
||||||
|
Template template = engine.getTemplate("/wit_test.wit");
|
||||||
String result = template.render(Dict.create().set("name", "hutool"));
|
String result = template.render(Dict.create().set("name", "hutool"));
|
||||||
Assert.assertEquals("hello,hutool", StrUtil.trim(result));
|
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