最近一直为选择模板语言所扰,搜了一下文章,有以下几点评价。(这是原文作者的比较,各人意见仁者见仁,智者见智吧)
Velocity:
Turbine项目(http://jakarta.apache.org/Turbine)采用了velocity技术。1. 友好性不够。理由: 强控制类型,出现页面显示控制代码和html混合。与Html的不兼容,无法所见即所得。遇到大的HTML页面,从一个 “#if”找到对应的 “#end”也是很痛苦的一件事情。
2. 表现力强。理由:强控制语言。
3. 复用性弱。理由:模板脚本和页面代码混合。
XSLT
Cocoon项目(http://cocoon.apache.org/)采用XML + XSLT的方法。CSDN社区也是采用此方案。
1. 内容和显示风格分离,这点XSLT做的最好。
2. 速度慢。理由:XSLT的使用XPath,由于是要解析DOM树,当XML文件大时,速度很慢。
3. 友好性不够。理由:由于没有HTML文件,根本看不到页面结构、显示风格和内容。XSL语法比较难以掌握,由于没有“所见即所得”编辑工具,学习成本高。
4. 表现力强。理由:强控制语言。
5. 复用性弱。理由:xsl标签和html标签混合。
JDynamiTe
1. 表现力中等。理由:弱控制语言。
2. 友好性强。理由:所见即所得的效果。在模板件中的ignore block在编辑条件下可展示页面效果,而在运行中不会被输出。
3. 复用性强。理由:利用html标签。 Tapestry
1. 友好性中等。理由:整个Tapestry页面文件都是HTML元素。但是由于component会重写html标签,其显示的样子是否正确,将不预测。
2. 表现力强。理由:强控制语言。
3. 复用性强。理由:扩展了HTML元素的定义。