基于网页的系统开发中对模板的讨论
一直头疼于基于网页的开发(说简单点就是网站),经验不够丰富的开发人员很难将界面和逻辑很好地分开,好在近来模板的概念开始冒起,给我们提供了一些可能的选择。
在PHP世界中选择最合适的模板--比较PHPLIB Template和FastTemplate
模板引擎SMARTY
另外,JSP用户可以看看STRUTS这个东西,好像是Apache.org开发的,传说很牛~~
找到的动态页面编程模板解决方案
- http://template.sourceforge.net/ 一个比较简陋的模板解决方案,有php、.net、java等各种语言的实现,不过具体效果如何不明。
- http://displaytag.sourceforge.net/ 一个tag lib库,用于方便地在jsp中显示和操作表格,据说符合mvc模式。
- http://freemarker.sourceforge.net/ 一个组件,用于实现在html、rtf等格式来回转换,根据其官方主页的说法,也可以用于动态页面上的jsp编程。
- http://asptemplate.sourceforge.net/ 用于asp的动态页面模板,比较成熟。
- http://www.cobricks.de/ 一个网上交流的基础库,可以利用这个开发自己的网上交互解决方案。
- http://luxor-xul.sourceforge.net/ 用xml来辅助生成图形界面的一个库,
- http://jakarta.apache.org/velocity/ apache实现的jsp模板方案,应该不错(apache出品,必属精品),回头研究一下性能和成熟度等。
部分想法
其实我的初衷是寻找一个可以方便使用的jsp模板解决方案,虽然我找到了Velocity,感到十分贴近我的需求——模板本身只有很少的逻辑表达能力,所以方便美工人员进行修改定制,而不会出太多问题。但是这个东西主要是依靠servlet在后台进行配合,仅仅使用这个东西实现系统就需要大量使用servlet进行编程,并不是一件十分让人开心的事情。apache在Velocity主页上给出的建议是同时配合Turbine使用,这样,Velocity负责View层的工作,加上Turbine,就可以提供完整的MVC模式支持。所以我又看了一下Turbine,这个东西应该说已经比较完善,证据就是jetspeed portal就是基于Turbine开发的。Turbine这个实现也十分灵活,可以与多个框架产品协同工作,但问题在于,使用Turbine做系统的感觉更像是在做servlet,让我这个学jsp出身的人十分不适应,而且,似乎最近关心Turbine的人不算很多。
干脆,我还是回到了最热门的Structs,发现这个东西更有给jsp做扩展的感觉,至少在文档里更多提到的是tag lib,提到了javabean,给我相当熟悉亲切的感觉,或许我还是应该多学学Structs。即使说Structs和Turbine是同级的系统,可以同样出色地完成工作的话(两者都可以在MVC各层上支持多种框架和组件),至少Structs有easyStructs可用,多少可以自动化一些,可以算是勉强胜出吧。
至于我原来的想法——想要找一个jsp模板系统用用,后来看看可能jstl和jsf更符合我的要求,也足够简单。回头研究清楚了再补充在这里。