Jplateau(原作)
來自:http://www.javaresearch.org/article/8134.htm
對于在頁面的布局管理以及可重用方面,Tiles做得很優(yōu)秀,使我們在開發(fā)過程中思路非常流暢,特別是在用struts開發(fā)項(xiàng)目過程中,如果使用tiels來輔助開發(fā),往往能帶到事半功倍的效果。
如果要看Tiles的詳細(xì)文檔,請?jiān)L問
http://www.lifl.fr/~dumoulin/tiles/
在此我想從使用方式上說一下自己的經(jīng)驗(yàn):
往往我們的一個(gè)項(xiàng)目中,大部分的頁面的布局都是一樣的,這其中如果我們把一樣風(fēng)格的頁面歸為一類的話,這樣的分類就不會很多了。(不同的項(xiàng)目這樣的分類多少為有區(qū)別,要看頁面風(fēng)格規(guī)劃的是否高效)
假設(shè)我們提出一類頁面(如產(chǎn)品管理)的風(fēng)格,布局如下:
那么我們可以在tiles-defs.xml中定義這樣一個(gè)總的類型,如下:
tiles-defs.xml 放在/yourwebapp/WEB-INF/下
- <?xml version="1.0" encoding="ISO-8859-1" ?>
- <!DOCTYPE tiles-definitions PUBLIC
- "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
- "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
- <tiles-definitions>
- <!―布局類型一 -->
- <definition name="mainLayout" path="/homepage.jsp">
- <put name="top" value="/header.jsp" />
- <put name="menu" value="/menu.jsp"/>
- <put name="main" value="/main.jsp" />
- <put name="footer" value="/footer.jsp" />
- </definition>
- ……
- <!―布局類型二 -->
- <definition>
- ……
- </definition>
- ……
- </tiles-definitions>
以上定義了一種布局類型,假設(shè)命名為A布局,下面要列舉兩個(gè)屬于該類型風(fēng)格的頁面的布局方法添加產(chǎn)品頁面,最終我們要關(guān)心的時(shí)addProducts.jsp這個(gè)頁面,但是我們?nèi)绾问褂肁布局的布局風(fēng)格呢?
如下:
……接上tiles-defs.xml……
- <!―布局類型A布局一 -->
- <definition name="mainLayout" path="/homepage.jsp">
- <put name="top" value="/header.jsp" />
- <put name="menu" value="/menu.jsp"/>
- <put name="main" value="/main.jsp" />
- <put name="footer" value="/footer.jsp" />
- </definition>
-
- <!―布局類型A布局“子類1:添加商品”一 -->
- <definition name=”mainLayout_products_add” extends=” mainLayout”>
- <put name=”main” value=”/addProducts.jsp”/>
- <!―相當(dāng)于把布局A中main的內(nèi)容換成我們需要的,其他保留 -->
- </definition>
- <!―布局類型A布局“子類2:查詢商品”一 -->
- <definition name=”mainLayout_products_search” extends=” mainLayout”>
- <put name=”main” value=”/searchProducts.jsp”/>
- <!―相當(dāng)于把布局A中main的內(nèi)容換成我們需要的,其他保留 -->
- </definition>
- ……
- ……
以上只是以一種布局類型來說明,其他的布局類型(如:布局B,布局C。。。。。)都用相通的方法擴(kuò)展,沒有什么難的地方。
下面簡要說一些tiles在struts-config.xml中的配置,在struts1.1種tiles是利用struts的擴(kuò)展機(jī)制來完成裝載的,代碼很簡單如下:
- //struts-config.xml
- ……
- <plug-in className="org.apache.struts.tiles.TilesPlugin" >
- <set-property property="definitions-config"
- value="/WEB-INF/tiles-defs.xml" />
- </plug-in>
如果你些多個(gè)tiles配置文件,那么用“,”號隔開。
下面在舉一個(gè)使用tiles以后action mapping 的寫法
如我們要進(jìn)行添加商品的請求,在添加頁面里要先進(jìn)行商品類型的裝載:
addProductAction.do――〉ProductAction――〉addProducts.jsp
ProductAction完成商品類型的集合返回client端
- //Struts-config.xml
- …………
- <action path=”/ addProductAction”
- type=”com.***. ProductAction”>
- <!―成功以后返回布局A子類1-- >
- <forward name=”” path=” mainLayout_products_add”>
- </action>
- …………
好了,以上對一個(gè)操作的流程采用tiles以后的寫法進(jìn)行了簡要的說明,具體Tiles的文檔請參看上面給出的連接。
Struts發(fā)布包里也有tilse的文檔和例子。