我一直认为tiles应该从Struts中独立出来,成为一个单独的项目。至少也应该放入Commons之中。不过,到Struts1.2版本中仍然没有动静。Shale对此也没有明确的说法。
两大主要的布局工具,相比而言,我还是觉得Tiles要好用一些,而且方式优雅。对此,Struts分发包所带的例子tiles-Document就是一个非常有用的学习例子。(很多人来消息说,想要通过例子学习Struts,那么朋友,你可曾研究过Struts的自带例子?如果没有,那就好好看一看吧。关于Struts中的示例程序,大家可以参考我前面所写的“Struts秘籍”中的一篇。)。Tiles不仅是对布局,而且本身还自带对菜单的支持。而且,著名的开源门户项目 liferay 就是使用的Tiles作为布局工具,实现了portlet的表现,甚是了得。(另一个很好的portal ExoPlatform则是使用了JSF。)
当然,Sitemesh也非常不错,而且由于使用了装饰器模式和Servlet Filter,灵活性更高。你可以用它做你爱做的事情,做你想做的事情。不过,似乎因为Sitemesh是 opensymphony 的项目,好像大家就以为它只能与WebWork配对使用,或者心存这种假设。其实不然,呵呵,这种假设不成立。它们两个都是中立的。完全可以根据你的需要选择使用。SiteMesh也完全可以用于Struts项目。
还有一个项目是Struts-Layout,这个项目则主要偏重于细微的表现,比如树型,面板之类的。较少用于总体布局。不过这些对JSF来说都是小Case了。
IBM WSAD本身支持一种模板的布局处理方式,大家可以参考。它实际上是一套可以由IDE管理的代码复制和重用机制。对整体布局和网站基础,比如导航、菜单、面包屑、SiteMap等支持也非常不错。大家也可以研究一下。
开发工具来说,最好的Struts开发工具还是M7的Nitrox,对Tiles的支持也非常之棒。可惜不是免费的。也鲜见破解版本。另外就是Exadel Studio,也非常不错,这方面好像是在学习M7。而且它前些时候刚推出免费版本。
当然,各个商业IDE还是对其支持的不错。
这一章感觉并为把Tiles讲解够深。至于Tiles的高级应用,在Tiles-Document示例应用中,可以找到一个相关的链接。
在这里下载这一章。