Common Template Engine 发布版本 | 每日构建 >>  English | 中文
下载 更新 论坛 关于我们
文档
首页概览
模板指南
表达式指南
语法外套指南
配置指南
扩展指南
API使用指南
常见问题
对比其它模板引擎
集成
MVC框架集成
JSP标签集成
缓存策略集成
日志框架集成
数据格式集成
脚本引擎集成
邮件发送组件集成
第三方集成依赖包
工具
调试器说明
查看器说明
模板生成器说明
模板转换器说明
编辑器插件说明
代码生成器说明
开发
架构设计
开发规范
项目计划
需求场景
资源
下载
许可协议
更新日志
UML图
Java Doc
测试覆盖率报告
社区
开发团队
论坛
知识库
邮件列表
问题列表
报告问题

 
CommonTemplate API使用指南

一. 模板引擎使用 JavaDoc...
(1) Java版: (环境需求JRE1.4.2以上) 下载jre...
// 导入util和io包
import java.util.*;
import java.io.*;

// 导入commontemplate模块
import org.commontemplate.core.*;
import org.commontemplate.engine.*;
import org.commontemplate.standard.*;
import org.commontemplate.tools.*;

// 配置并建造引擎 (Engine是内同步线程安全的,并且Engine的装配比较耗时,请单实例重用Engine类)
ConfigurationSettings config = PropertiesConfigurationLoader.loadConfiguration("commontemplate.properties");
// 或者:ConfigurationSettings config = PropertiesConfigurationLoader.loadStandardConfiguration();
// 或者:StandardConfiguration config = new StandardConfiguration();
// config.setXXX();
Engine engine = new Engine(config);

// 设置全局上下文 (GlobalContext在同一Engine创建的Context间共享)
GlobalContext globalContext = engine.getGlobalContext();
globalContext.put("name""value");
...

// 定义运行期数据
Map model = ...
Writer out = ...

// 创建上下文 (Context非线程安全,应为每次执行创建新的Context)
Context context = engine.createContext(out);
context.putAll(model);
context.put("name""value");
...

// 执行模板
Template template = engine.getTemplate("mytemplate.ctl");
template.render(context);

// 清理上下文及输出(最好放在finally块中)
context.clear();
out.flush();
out.close();


关系图如下:


工具类: org.commontemplate.tools.TemplateRenderer
Writer out = ...;
new TemplateRenderer("$for{times} ${user.name} $end").put("times", 5).put("user", new User(1, "james")).render(out);
或者:
String result = new TemplateRenderer("$for{times} ${user.name} $end").put("times", 5).put("user", new User(1, "james")).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.loadExpressionConfiguration("commonexpression.properties");
// 或者:ExpressionConfigurationSettings config = PropertiesConfigurationLoader.loadStandardExpressionConfiguration();
// config.setXXX();
ExpressionEngine engine = new ExpressionEngine(config);

// 创建上下文
ExpressionContext context = new ExpressionContext();
context.put("price"new Integer(17));

// 解析表达式
Expression expression = engine.parseExpression("price * 3 + 5");
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();
 

版权所有 © 2007 - 2009 CommonTemplate 开发小组