熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Struts s Tiles 使用入門完全攻略

2013-11-23 20:30:34  來源: Java開源技術 

  說明
  Struts以後增加了Tiles包使得struts在頁面的處理方面多了一種選擇並且更容易實現代碼的重用Tiles中對頁面的劃分有點象jakarta的另外一個項目Turbine中的TDK增加了layout的概念其實就是把一個頁面劃分為幾塊通常的來說一個頁面大概可以劃分為如下幾塊head頁面頭部:存放一個運用的公共信息logo等如果是網站可能是最上面的一nu頁面菜單:放置一個運用中需要使用的菜單或者在每一個頁面都使用的連接footer頁面尾部:如版權信息等body頁面主題內容:每個頁面相對獨立的內容如果按上面的劃分那對每一個頁面我們只要寫body裡面的內容其他的就可以共享重用如果大多數頁面的布局基本相同我們甚至可以使用一個jsp文件根據不同的參數調用不同的body
  
  Tiles配置和基本配置文件介紹
  Tiles有一個配置文件:tilesdefsxml
  tilesdefsxml定義了每一個頁面的組成元素和形式
  下面我將說明如下所示的一個tilesdefsxml文件
  tilesdefsxml
  
  <tilesdefinitions>
  <!定義/layouts/classicLayoutjsp的組成名稱為sitemainLayout>
  <!後面將附/layouts/classicLayoutjsp的內容>
  <definition name=sitemainLayout path=/layouts/classicLayoutjsp>
  <put name=title value=Tiles Blank Site />
  <put name=header value=/tiles/common/headerjsp />
  <put name=menu value=nubar />
  <!menu的組成為nubar對應的頁面>
  <put name=footer value=/tiles/common/footerjsp />
  <put name=body value=/tiles/bodyjsp />
  </definition>
  <!定義siteindexpage繼承sitemainLayout>
  <definition name=siteindexpage extends=sitemainLayout >
  <put name=title value=Tiles Blank Site Index />
  <put name=body value=/tiles/bodyjsp />
  <!以上兩個元素將替換sitemainLayout中的元素>
  </definition>
  
  <definition name=nubar path=/layouts/vboxLayoutjsp >
  <putList name=list >
  <add value=nulinks />
  <add value=nudocumentation />
  </putList>
  </definition>
  </tilesdefinitions>
  
  附/layouts/classicLayoutjsp
  
  <html>
  <head>
  <title><tiles:getAsString name=title/>
  </title>
  </head>
  
  <body bgcolor=#ffffff text=# link=# alink=# vlink=#>
  <table border= width=% cellspacing=>
  <tr>
  <td colspan=><tiles:insert attribute=header /></td>
  </tr>
  <tr>
  <td width= valign=top>
  <tiles:insert attribute=menu/>
  </td>
  <td valign=top align=left>
  <tiles:insert attribute=body />
  </td>
  </tr>
  <tr>
  <td colspan=>
  <tiles:insert attribute=footer />
  </td>
  </tr>
  </table>
  </body>
  </html>
  
  在webxml裡面配置tiles配置完後對應struts action servlet的配置如下:
  webxml
  
  <! Action Servlet Configuration >
  <servlet>
  <servletname>action</servletname>
  <! Specify servlet class to use:
   Strutsx: ActionComponentServlet
   Struts: ActionServlet
   no Struts: TilesServlet
  >
  <servletclass>orgapachestrutsactionActionServlet</servletclass>
  
  <! Tiles Servlet parameter
  Specify configuration file names There can be several comma
  separated file names
  >
  <initparam>
  <paramname>definitionsconfig</paramname>
  <paramvalue>/WEBINF/tilesdefsxml</paramvalue>
  </initparam>
  
  <! Tiles Servlet parameter
  Specify Tiles debug level
  O : no debug information
   : debug information
   : more debug information
  >
  <initparam>
  <paramname>definitionsdebug</paramname>
  <paramvalue></paramvalue>
  </initparam>
  
  <! Tiles Servlet parameter
  Specify Digester debug level This value is passed to Digester
  O : no debug information
   : debug information
   : more debug information
  >
  <initparam>
  <paramname>definitionsparserdetails</paramname>
  <paramvalue></paramvalue>
  </initparam>
  
  <! Tiles Servlet parameter
  Specify if xml parser should validate the Tiles configuration file
  true : validate DTD should be specified in file header
  false : no validation
  >
  <initparam>
  <paramname>definitionsparservalidate</paramname>
  <paramvalue>true</paramvalue>
  </initparam>
  
  <! Struts configuration if Struts is used >
  <initparam>
  <paramname>config</paramname>
  <paramvalue>/WEBINF/strutsconfigxml</paramvalue>
  </initparam>
  <initparam>
  <paramname>validate</paramname>
  <paramvalue>true</paramvalue>
  </initparam>
  <initparam>
  <paramname>debug</paramname>
  <paramvalue></paramvalue>
  </initparam>
  <initparam>
  <paramname>detail</paramname>
  <paramvalue></paramvalue>
  </initparam>
  
  <loadonstartup></loadonstartup>
  </servlet>
  
  使用Tiles
  如果已經配置好tielsdefsxml接下來就可以在jsp文件中使用這些定義了
  有如下的方式使用tiles
  :
  <tiles:insert definition=sitemainLayout flush=true />
  插入sitemainLayout標記的一頁
  
  
  <tiles:insert template=/tutorial/basic/myFramesetLayoutjsp >
  <tiles:put name=title content=My first frameset page direct=true />
  <tiles:put name=header content=/tutorial/common/headerjsp direct=true/>
  <tiles:put name=footer content=/tutorial/common/footerjsp direct=true/>
  <tiles:put name=menu content=/tutorial/basic/menujsp direct=true/>
  <tiles:put name=body content=/tutorial/basic/helloBodyjsp direct=true/>
  </tiles:insert>
  
  /tutorial/basic/myFramesetLayoutjsp
  
  <html>
  <head>
  <title><tiles:get name=title/></title>
  </head>
  
  <frameset rows= * >
  <frame src=<%=requestgetContextPath()%><tiles:get name=header /> name=header >
  <frame src=<%=requestgetContextPath()%><tiles:get name=body /> name=body >
  <frame src=<%=requestgetContextPath()%><tiles:get name=footer /> name=footer >
  </frameset>
  
  </html>
  插入/tutorial/basic/myFramesetLayoutjsp
  並把title的值設定為:My first frameset page
  header設定為/tutorial/common/headerjsp
  
  後記
  Tiles的使用在他的文檔裡面寫的比較詳細以上是一些簡單和基本的使用具體的文檔可以看Struts裡面的一個tilesdocumentationwar的包但即使是這個包也不是很全可以通過上的的連接到作者的主頁上去找個人覺得使用Tiles在做企業運用的時候可能不如在做網站那樣更能體現優越性但在系統開始設計的時候考慮並規劃好整個UI那在修改和維護的時候將節省不少的工作量因為通常UI的確定在代碼編寫結束和完成所有盡可能的使用多個子頁面構成一個頁面後面的美化和維護就比直接維護一個很大的頁面容易

From:http://tw.wingwit.com/Article/program/Java/ky/201311/28594.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.