我一直認為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示例應用中,可以找到一個相關的鏈接。
在這里下載這一章。