|
CommonTemplate API使用指南 |
|
一. 模板引擎使用 JavaDoc>>
(1) Java版: (环境需求JRE1.4.2_10以上) 下载...
import java.util.*;
// 导入commontemplate模块
import org.commontemplate.core.*;
import org.commontemplate.engine.*;
import org.commontemplate.standard.*;
import org.commontemplate.tools.*;
// 配置并建造引擎 (Engine是内同步线程安全的,可单例重用)
ConfigurationSettings config = PropertiesConfigurationLoader.loadStandardConfiguration();
// 或者:ConfigurationSettings config = PropertiesConfigurationLoader.loadConfiguration("xxx.properties");
// 或者:StandardConfiguration config = new StandardConfiguration();
Engine engine = new Engine(config);
// 设置全局上下文 (GlobalContext在同一Engine创建的Context间共享)
GlobalContext globalContext = engine.getGlobalContext();
globalContext.put("name", "value");
...
// 定义运行期数据
Map model = ...
Writer out = ...
// 创建上下文 (Context非线程安全,应为每次执行创建新的Context)
// 注:国际化信息传入可用factory.createContext(output, locale, timeZone);
Context context = engine.createContext(output);
context.putAll(model);
context.put("name", "value");
...
// 执行模板
Template template = engine.getTemplate("mytemplate.ctl");
template.render(context);
// 清理上下文及输出(最好放在finally块中)
context.clear();
output.flush();
output.close();
关系图如下:
工具类: org.commontemplate.tools.TemplateRenderer
Writer out = ...;
new TemplateRenderer("$for{times} ${user.name} $end").put("times", 5).put("user", new User()).render(out);
或者:
String result = new TemplateRenderer("$for{times} ${user.name} $end").put("times", 5).put("user", new User()).evaluate();
(2) .Net版: (环境需求CLR1.1以上)
......
二. 表达式引擎使用
Java API:
// 导入相关模块
import org.commontemplate.core.*;
import org.commontemplate.engine.expression.*;
import org.commontemplate.standard.*;
import org.commontemplate.tools.*;
// 配置并建造引擎
ExpressionConfigurationSettings config = PropertiesConfigurationLoader.loadStandardExpressionConfiguration();
// 或者:ExpressionConfigurationSettings config = PropertiesConfigurationLoader.loadExpressionConfiguration("xxx.properties");
ExpressionEngine engine = new ExpressionEngine(config);
// 创建上下文
VariableResolver context = ...
// 解析表达式
Expression expression = engine.parseExpression("1 + 1");
Object result = expression.evaluate(context);
工具类: org.commontemplate.tools.ExpressionEvaluator
Object result = new ExpressionEvaluator("book.price * discount + 1").put("book", new Book()).put("discount", 0.8).evaluate();
|
|