早听说Tapestry的大名,在使用过若干个Web框架后,终于有机会一试。感觉如下:
1.保证了html的纯洁,在最低干扰的情况下,可以只增加少量的jwcid属性。
这样可以使整个动态网页的开发更适合敏捷开发的需要(网页的效果可以在不影响后台的情况下随时进行变动)。
可以使用熟悉的工具进行html内容的开发,象FrontPage等。
页面部分不包含代码,不需要额外的工具如JSP编辑器。代码可以直接使用熟悉的工具来做。
2.基于组件的开发模式
以组件的方式来对后台程序进行组织
组件的开发几乎同页面开发类似,降低了新组件开发的难度
易于对代码进行测试
3.绑定
组件的值可以同页面(Page)类进行绑定
问题:
1.与JSP的集成
因为Tapestry是基于Servlet而不是基于JSP的页面框架,因此与JSP的集成是个问题,但好象它提供了JSP的Tag,不知道是什么用途,有时间看
一下。
但这个一般来说不是问题,因为用了Tapestry后,JSP反而变得不是很有必要。
2.ognl语言
新的JSP的表达式语言和JSF的表达式语言将会进行更好地融合从而成为一个表达式语言,不知道Tapestry有没有可能把它的ognl语言改成用它
。
总的来说,Tapestry给人一种焕然一新的感觉。如果从JSP是模仿ASP,而ASP是模仿PHP的代码嵌入页面这个角度上来说(代码嵌入页面当然比
CGI方式好,因为毕竟Web还是以内容为主的),那么Tapestry则是在意识到这种方式的问题后提出的将页面和代码分离得比较彻底的方式,从
某种程度上可以说它基于CGI和JSP之间。
我记得曾经有人建议在JSF中除了JSP tag方式以外增加一种类似Tapestry方式的页面组件生成机制,足见Tapestry方式的影响,另外也说明跟
Tapestry同级的应该是JSP,所以比较时应该与JSP进行比较。
但Tapestry和JSF在这一点上我认为是有一点不一样的。同样使用组件机制,Tapestry似乎跟页面内容结合得更紧密,而JSF似乎本来就想将组
件同绘制分开,当然Tapestry本身也是将组件的生成和最后的绘制分开,但至少我现在的感觉是Tapestry更紧密一点。