采用Struts2作MVC框架,想考虑应用一种模板技术来美化页面,目前在FreeMarker和Velocity之间选择,拿不定主意,想听听大伙的意见。
我先来说说我了解到的情况:
Velocity优点:
1.采用简单而强大的模板语言VTL来渲染页面,能保证在Dreamwaver之类的可视化编辑器中正常显示。
2.模板可以是任意扩展名,采用.html也可以,这样就能直接在浏览器中看到效果。
3.渲染速度快。
Velocity缺点:
1.不是JavaEE标准,文档较少。
2.VTL语法需要一定上的学习时间,尽管相对较容易。
FreeMarker优点:
1.Struts2默认采用(是否溶合起来比Velocity更容易?)
2.具有一些编程能力,虽然有限,只能提供一些数据格式的轮换功能。
3.与WEB容器无关,除了HTML,也可以生成各种文本,如XML、RTF、Java源代码等。
FreeMarker缺点:
1.freemarker的map限定key必须是string,不支持其他数据类型。(对我的应用好象影响不大)
2.freemarker的变量必须有值,没有被赋值的变量就会抛出异常。程序里面几乎所有可能出现空值的变量统统需要加上${xxx?if_exists},有些循环条件还需要写if判断。
3.不能在群集上面发布应用。freemarker支持在页面里面直接操作Session,request等,例如${Session[...]},但不能对其序列化。(这个对我也不是问题,作为企业里的小应用,我就不用群集)
我先来说说我了解到的情况:
Velocity优点:
1.采用简单而强大的模板语言VTL来渲染页面,能保证在Dreamwaver之类的可视化编辑器中正常显示。
2.模板可以是任意扩展名,采用.html也可以,这样就能直接在浏览器中看到效果。
3.渲染速度快。
Velocity缺点:
1.不是JavaEE标准,文档较少。
2.VTL语法需要一定上的学习时间,尽管相对较容易。
FreeMarker优点:
1.Struts2默认采用(是否溶合起来比Velocity更容易?)
2.具有一些编程能力,虽然有限,只能提供一些数据格式的轮换功能。
3.与WEB容器无关,除了HTML,也可以生成各种文本,如XML、RTF、Java源代码等。
FreeMarker缺点:
1.freemarker的map限定key必须是string,不支持其他数据类型。(对我的应用好象影响不大)
2.freemarker的变量必须有值,没有被赋值的变量就会抛出异常。程序里面几乎所有可能出现空值的变量统统需要加上${xxx?if_exists},有些循环条件还需要写if判断。
3.不能在群集上面发布应用。freemarker支持在页面里面直接操作Session,request等,例如${Session[...]},但不能对其序列化。(这个对我也不是问题,作为企业里的小应用,我就不用群集)