Struts2教學
Struts2快速入門
Struts2 MVC架構
Struts2 是什麼?
Struts2 環境配置
Struts2 體系結構
Struts2 Hello World 實例
Struts2 配置文件
Struts2 Action/動作
Struts2 攔截器
Struts2 結果和結果類型
Struts2 值棧/OGNL
Struts2 文件上傳
Struts2 MySQL數據庫訪問
Struts2 發送郵件Email
Struts2 驗證框架
Struts2 基於XML校驗
Struts2 本地化/國際化(i18n)
Struts2 類型轉換
Struts2 主題和模板
Struts2 異常處理
Struts2 註釋
Struts2 註釋類型
Struts2 控件標籤
Struts2 iterator標籤
Struts2 if/else標籤
Struts2 merge標籤
Struts2 append標籤
Struts2 generator標籤
Struts2 數據標籤
Struts2 action標籤
Struts2 include標籤
Struts2 bean 標籤
Struts2 date 標籤
Struts2 param 標籤
Struts2 property 標籤
Struts2 set 標籤
Struts2 text 標籤
Struts2 url標籤
Struts2 表單標籤
Struts2 Ajax 標籤
Struts2和Spring集成
Struts2和Tiles集成
Struts2和Hibernate集成
Struts 2 hello world (XML版本)
Struts2註解示例
Struts2 @ResultPath註釋示例
Struts2 include(包含)多個配置文件
Struts2命名空間配置和解釋
Struts2開發者模式
如何刪除Struts2動作的後綴擴展名
使用Struts2動作
Struts2的ActionError&ActionMessage示例
Struts2模型驅動實例
Struts2映射攔截動作
Struts2重寫攔截器參數
Struts2攔截器棧的例子
Struts2 execAndWait攔截器例子
Struts2 <s:textfield>文本示例
Struts2 <s:password>密碼示例
Struts2 <s:hidden>隱藏值例子
Struts2 <s:textarea>文本域實例
Struts2 <s:radio>單選按鈕例子
Struts2單選預選按鈕值
Struts2 <s:checkbox>複選框例子
Struts2設置多個複選框缺省值
Struts2 <s:checkboxlist>多個複選框例子
Struts2 <s:select>下拉框例子
Struts2自動選擇下拉框的值
Struts2 <s:combobox>組合框的例子
Struts2 <s:head>示例
Struts2文件上傳例子
Struts2上傳多個文件例子
Struts2 <s:doubleselect>示例
Struts2 <s:updownselect>示例
Struts2 <s:optiontransferselect>示例
Struts2 <sx:datetimepicker>示例
Struts2 <sx:autocompleter>自動提示例子
Struts2 autocompleter+JSON例子
Struts2 <s:iterator>迭代器標籤示例
Struts2 if,elseif,else標籤示例
struts2 <s:append>標籤示例
Struts2 <s:generator>標籤示例
Struts2 <s:merge>標籤示例
Struts2 <s:sort>標籤示例
Struts2 <s:subset>標籤示例
Struts2 <s:a>標籤示例
Struts2 <s:action>標籤示例
Struts2 <s:bean>標籤示例
Struts2 <s:date>標籤示例
Struts2 <s:debug>標籤示例
Struts2 <s:include>標籤示例
Struts2 <s:i18n>標籤示例
Struts2 <s:param>標籤示例
Struts2 <s:property>標籤實例
Struts2 <s:push>標籤示例
Struts2 <s:set>標籤示例
Struts2 <s:texttag>標籤示例
Struts2 <s:url>標籤示例
Struts2資源包使用示例
Struts2本地化和國際化
Struts2 key鍵屬性示例
Struts2中文本地化問題
如何配置Struts2全局資源包
Struts2+Spring集成實例
Struts2+Quartz2調度集成實例
Struts2+Hibernate使用Full Hibernate Plugin集成
Struts2+Hibernate集成實例
Struts2+Spring+Hibernate集成實例
Struts2+Log4j集成
Struts2的FilterDispatcher和StrutsPrepareAndExecuteFilter有什麼不同?
Struts2獲取HttpServletRequest實例
Struts2獲取HttpServletResponse實例
如何獲取ServletContext對象
Struts2配置Action類的靜態參數
Struts2下載文件實例
Struts2和JSON實例

Struts2和Tiles集成

在本章中,讓我們通過Struts2的集成Tiles框架所涉及的步驟。 Apache的Tiles是一個內置的模板框架來簡化Web應用程序用戶界面的開發。

首先,我們需要從Apache Tiles 網站下載的files jar文件。需要添加下面的jar文件添加到項目的類路徑。

  • tiles-api-x.y.z.jar

  • tiles-compat-x.y.z.jar

  • tiles-core-x.y.z.jar

  • tiles-jsp-x.y.z.jar

  • tiles-servlet-x.y.z.jar

除了上述,我們必須下載複製下面的jar文件到WEB-INF/lib。 .

  • commons-beanutils-x.y.zjar

  • commons-digester-x.y.jar

  • struts2-tiles-plugin-x.y.z.jar

現在,讓我們設置web.xml Struts-Tiles 集成。有兩個重要的點,這裏要注意的。首先,我們需要告訴tiles配置文件tiles.xml在哪裏可以找到。在我們的案例中,這將是在/WEB-INF文件夾下。接下來,我們需要初始化tiles偵聽器,配備了Struts2下載。

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app\_2\_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app\_2\_5.xsd" id="WebApp_ID" version="2.5"> Struts2Example15 org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG /WEB-INF/tiles.xml org.apache.struts2.tiles.StrutsTilesListener struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* index.jsp

接下來,讓我們一起創建 tiles.xml在/WEB-INF文件夾下包含以下內容:

<definition name="baseLayout" template="/baseLayout.jsp"> <put-attribute name="title" value="Template"/> <put-attribute name="banner" value="/banner.jsp"/> <put-attribute name="menu" value="/menu.jsp"/> <put-attribute name="body" value="/body.jsp"/> <put-attribute name="footer" value="/footer.jsp"/> <definition name="tiger" extends="baseLayout"> <put-attribute name="title" value="Tiger"/> <put-attribute name="body" value="/tiger.jsp"/> <definition name="lion" extends="baseLayout"> <put-attribute name="title" value="Lion"/> <put-attribute name="body" value="/lion.jsp"/>

文部科學省。我們定義了一個基本框架在baseLayout.jsp佈局。它有5個可重複使用/重寫地區。即標題,橫幅,菜單,主體和頁腳。在baselayout 我們提供了默認值,然後我們創建了兩個自定義擴展的默認佈局。tiger佈局的基本佈局是相似的,除了它使用它的主體和文本「tiger」爲題的tiger.jsp。同樣,lion的佈局是相似的基本佈局,除了它使用lion.jsp,作爲其主體和「lion」作爲標題的文本。

讓我們一起來看看在個別jsp文件。以下是內容的baseLayout.jsp文件:

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <tiles:insertAttribute name="title" ignore="true" /> <tiles:insertAttribute name="banner" />


<tiles:insertAttribute name="menu" />

<tiles:insertAttribute name="body" />

<tiles:insertAttribute name="footer" />

在這裏,我們只是把一個基本的HTML頁面,瓷磚屬性。我們插入tiles 屬性,我們需要他們的地方。接下來,就讓我們創建banner.jsp文件包含以下內容:

<img src="http://www.yiibai.com/images/tp-logo.gif"/>

引入menu.jsp文件將有下面的線是鏈接 - TigerMenu.action和Struts動作LionMenu.action。

<%@taglib uri="/struts-tags" prefix="s"%>

<a href="<s:url action="tigerMenu"/>" Tiger
<a href="<s:url action="lionMenu"/>" Lion

lion.jsp文件將有以下內容:

<img src="http://upload.wikimedia.org/wikipedia/commons/d/d2/Lion.jpg"/> The lion

tiger.jsp文件將有以下內容:

<img src="http://www.freewebs.com/tigerofdarts/tiger.jpg"/> The tiger

接下來,讓我們來創建包含以下動作類文件MenuAction.java:

package com.yiibai.struts2; import com.opensymphony.xwork2.ActionSupport; public class MenuAction extends ActionSupport { public String tiger() { return "tiger"; } public String lion() { return "lion"; } }

這是一個相當直截了當類。我們聲明兩種方tiger()和lion()返回老虎和獅子的成果分別。讓我們把它都聚集在struts.xml文件:

<package name="default" extends="struts-default"> <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> <action name="*Menu" method="{1}" class="com.yiibai.struts2.MenuAction"> <result name="tiger" type="tiles">tiger <result name="lion" type="tiles">lion

讓我們檢查我們所做的事情在上述文件中。首先,我們聲明一個新的結果類型,稱爲「tiles」,現在我們是用tiles,而不是簡單的JSP視圖技術。Struts2的tiles支持查看結果類型,所以我們創建的結果類型是「org.apache.struts2.view.tiles.TilesResult」類的「tiles」。

接下來,我們想說,如果請求的是/tigerMenu.action採取「tiger tiles」頁面,用戶如果請求的是/lionMenu.action採取用戶lion tiles頁面。

爲此,我們使用了一點的正則表達式。在我們的行動定義,我們說任何匹配模式「*菜單」,將通過這一行動來處理。匹配方法將被調用在MenuAction類。也就是說,tigerMenu.action將調用 tiger(),lionMenu.action將調用 lion()。然後,我們需要的結果的結果映射到適當的tiles 頁。

現在右擊項目名稱,並單擊Export > WAR File創建一個WAR文件。然後部署這個WAR在Tomcat的webapps目錄下。最後,啓動Tomcat服務器和嘗試訪問URL http://localhost:8080/HelloWorldStruts2/tigerMenu.jsp。這會給你以下畫面:

Struts

同樣,如果你轉到lionMenu.action的頁面,你會看到獅子頁使用相同的tiles 佈局。