日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts -Tiles介绍

發布時間:2023/12/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts -Tiles介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?來源:http://hithoper.blog.hexun.com/17860631_d.html

?

安裝和配置Tiles

在您能夠使用Tiles 框架之前,您必須確保它已安裝并正確的配置在web容器中。Tiles框架并不依賴于某種特定的容器,您要做的就是獲得所需的文件,并將它們放到web應用程序的正確位置上。



下載Tiles

Tiles 框架包含在struts發行版中。先前版本中,它位于contrib文件夾中,但現在是核心的一部分。您還可以在http://www.lifl.fr /~dumoulin/tiles/index.html找到最新的源程序、二進制發行版本,以及其它一些有用的信息。



安裝所需的JAR文件和相關文件

第一步是安裝所需文件。對于Tiles來說,以下文件必須位于WEB-INF/lib目錄中:

u?????? tiles.jar

u?????? commons-digester.jar

u?????? commons-beanutils.jar

u?????? commons-collections.jar

u?????? commons-logging.jar

如果您在使用struts,這些文件就已經存在了,此外您還需要安裝Tiles TLD文件到應用程序的WEB-INF目錄。

警告:不要為了避免將tiles.jar文件放到每個web應用程序的WEB-INF/lib目錄,而將它放到servlet容器的classpath路徑中,如果這樣做的話會導致拋出ClassNotFoundException異常。

您還應該將tiles-config.dtd文件放到WEB-INF 目錄。該DTD文件用來驗證Tiles 定義文件(它將在本章的后面部分講到)。



添加Tiles標簽庫

就象 其它的JSP標簽庫一樣,在您能使用它們之前,您必須將Tiles標簽庫加入web應用程序發布描述文件中。給web.xml文件增加如下taglib元素:

<taglib>
??<taglib-uri>/WEB-INF/tiles.tld</taglib-uri>
??<taglib-location>/WEB-INF/tiles.tld</taglib-location>
</taglib>



如果您在使用標準的struts標簽庫,那么taglib元素應該已經有了。每個需要使用Tiles標簽庫的頁面必須在頂部包含如下行:

<%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %>




配置Tiles和Struts協同工作

Tiles框架可以和struts一起使用,也可單獨使用。取決于您如何使用它,為web應用程序配置tiles可以有幾種選擇。因為本書是講struts的,所以我們的重點是如何將其捆綁到struts應用程序。



提 示:若使用tiles框架的先前版本,您必須在web.xml文件中配置一個叫做ActionComponentServlet的特殊 ActionServlet,而且在Struts的controller元素中還需配置一個RequestProcessor?,F在這些不需了-現在有一 個tiles插件,它來完成所有的初始化。

如果您正計劃使用tiles,該插件是非常需要的。您也可不配置該插件而使用tiles庫和struts。但是,配置它也沒有什么害處,如果您以后決定使用tiles定義,它還可能節約您的時間。

在struts應用程序中加入tiles插件,請在struts配置文件中加入下列plug-in元素:

<plug-in className="org.apache.struts.tiles.TilesPlugin" >
??<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
??<set-property property="definitions-debug" value="2" />
??<set-property property="definitions-parser-details" value="2" />
??<set-property property="definitions-parser-validate" value="true" />
</plug-in>



在plug-in元素中,您可以加入幾個set-property元素給Plugin類傳入附加的參數。definitions-config參數指定包含tiles定義的xml文件。如果使用了多個文件名,則它們之間用逗號分隔。

definitions-debug參數指定調試的層次,允許值為:

0 :不輸出調試信息。

1 :提供部分調試信息。

2 :提供完整的調試信息。

缺省值為0。

definitions-parser-details參數指定當定義文件被解析時所需要的調試信息的層次,該值傳給Commons Digester。所允許的值同definitions-debug參數,缺省值為0。

definitions-parser-validate參數指明解析器是否驗證Tiles配置文件,允許值為true和false,缺省值為true。

還有一個叫做definitions-factory-class的參數沒有顯示出來。您可以創建一個自定義工廠,然后在這里給出類名,缺省值為org.apache.struts.tiles.xmlDefinition.I18NfactorySet。



Tiles縱覽

Tiles 框架提供一種模板機制,它能將布局和內容的職責分離。本章前面描述的模板,允許您先創建模板,然后在運行時動態地將內容插入到布局中。如果您要根據國際 化、用戶喜好定制您的站點,或僅僅改變視感(這在每個網站遲早會發生的),您就會發覺模板是一個強有力的機制。Tiles框架具有如下特性:

u?????? 模板能力

u?????? 動態構建和裝載頁面

u?????? 視屏定義

u?????? 支持tile和布局重用

u?????? 支持國際化

u?????? 支持多通道

模板標簽庫已經存在于struts框架中相當長的時間了,這些標簽可讓您使用非?;镜哪0宸绞皆趙eb應用程序中組織JSP頁面。雖然這些標簽對分離web應用程序的布局和內容很有幫助,但tiles框架走的更遠,它實際上是模板標簽庫的超集,具備許多其它特性。



提示:tiles框架先前被稱做Components,后來因為Component這個術語被濫用而改名。在tiles文檔和源程序中某些地方仍然在沿用老的名稱。



Cedric Dumoulin創立了tiles框架,它擴展了模板的概念,提供給開發人員在用JSP技術創建web應用程序時更大的靈活性和自由度。Web應用程序的 內容仍然用JSP頁面和JavaBeans驅動,但是布局由一個獨立的JSP頁面或XML文件(后面將提到)指定。



什么是tile?

Tile是web頁面的一個區域,一個頁面可以只有一個區域組成,或分解為幾個區域。圖14-1列舉了Storefront應用程序的一個例子。

圖14-1 Storefront應用程序的區域



一個JSP頁面通常由幾個區域或tile組成,關于頁面沒有什么特別的,僅僅是用在tiles框架中,并使用tiles標簽庫。

Tile 最重要的方面在于它是可復用的,對于布局和內容來說都是正確的。不同于大多數JSP頁面,tiles組件在應用程序中重復利用,甚至可能跨應用程序復用。 而且,tile不復雜。實際上,我們已經看到的大多數例子,包括例14-2到例14-4,都能歸類為tiles。



使用布局tile

在tiles的世界里,布局就是我們已經提及的模板。布局起著模板同樣的作用,即組合一組tile來指定頁面的格式。實際上,例14-2就是一個tile布局。Tiles和struts中包含的模板庫在語法上幾乎完全一樣。



提示:tiles框架是David Geary所定義的標準struts模板標簽的功能上的超集,但它提供更多的功能,進一步擴展了模板的概念。



布局也是受到高度評價的tiles。JSP頁面,甚至整個應用程序都能復用布局。通常建立一個布局庫,用于許多不同的項目中。Tiles框架自帶有幾個預建立的布局tiles,您可復用它或是根據需要修改它。Tiles框架包含的布局有:

u?????? Classic布局:具有頁頭、左列菜單、主體、和頁腳

u?????? Columns布局:具有多列,每列垂直堆疊

u?????? Center布局:具有頁頭、左幀、右幀、主體和頁腳

u?????? Menu布局:具有鏈接菜單

u?????? Tabs布局:

u?????? Vertical box布局:

由于tiles的主要目標之一是重用性,因此您可在應用程序中只需少許修改或不修改即可重用這些布局。當然您也可自由地根據需要定制布局。



規劃布局

提早規劃布局是非常重要的,在網站建立之后再決定外觀絕對不知一個好方法。通常由人性化團隊、產品管理或是web開發人員自身做這種決定。不管怎樣,您應該在開發之前規劃布局。

Storefront應用程序的缺省布局在例14-2中介紹了,該布局將作為例子貫穿本章。



傳參數給布局

例 14-2所示的布局tile是一般的,它并不知道itemdetail.jsp或其它頁面的內容。這樣做是有目的的,它能讓我們在很多頁面中復用該布局。 與在布局頁面中硬編碼不同,內容是在運行時作為參數傳遞給布局頁面的。讓我們來看看storefront應用程序的signin.jsp tile,如例14-5所示:



例14-5: storefront應用程序的signin.jsp tile

<%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %>

<tiles:insert page="../layouts/storefrontDefaultLayout.jsp" flush="true">
??<tiles:put name="header" value="../common/header.jsp"/>
??<tiles:put name="menubar" value="../common/menubar.jsp"/>
??<tiles:put name="body-content" value="../security/signin-body.jsp"/>??
??<tiles:put name="copyright" value="../common/copyright.jsp"/>????????
</tiles:insert>


例14-5中的put標簽的作用是提供布局tile,布局由包含的insert標簽指定。例14-5中的name屬性的值必須和所期望的布局tile相吻合。



提示:insert標簽有一可選ignore屬性,它可以允許當找不到屬性所引用的文件時什么東西都不輸出。缺省時,如果屬性所指定的文件沒有提供的話,運行時異常將拋出。

總結

以上是生活随笔為你收集整理的struts -Tiles介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。