搜尋
首頁Javajava教程在Struts中使用Tiles框架

在Struts中使用Tiles框架

Dec 17, 2016 am 10:50 AM


  這是Jakarta Struts程式設計一書中使用Tiles框架系列的第三部分,主要闡述瞭如何使用標記庫(包括:insert, definition, put, putList, add, get, getAsString, useAttribute, importAttribute, and initonent .
  
  Tiles標記庫(The Tiles Tag Library)
  這一部分介紹Tiles 框架使用的jsp自訂標記。表14-1列出了框架可用的標記 。這些標記與其他一些基於模板的框架所提供的標記是非常相似的,但是Tiles框架中蘊含著更豐富的功能。
  
  表 14-1: Tiles框架標記庫中的標記
  
  標記名(Tag name)          、      、    、  〜  〜  〜  、)   〜都  〜   、、)]  增加一個元素到環境清單中。
  definition     建立一個Tiles元件定義。
  Get     從請求作用域中得到內容(content),這個內容是put 標
  記所置入的。
  GetAsString    將tile/component/template屬性指定的值到目前的
  JspWriter。
  importAttribute 引入一個Tiles屬性到指定的上下文(context)中;
  initComponentDefinitions  初始化一個Tiles定義工廠。
  Insert      插入一個Tiles組件。
  Put      設定一個屬性到一個Tiles上下文。
  PutList       宣告一個列表,這個列表被傳遞為一個屬性。
  useAttribute    在頁面中使用一個屬性值。
  
  insert 標記
  insert 標記是負責頁面中插入內容。在一個Tiles佈局中, insert標記使用屬性值指定的內容。在非Tile佈局中,insert標記是用來獲得一個框架(layout)並且使用put 標記把內容傳遞給佈局中。
   表14-2列出insert 標記的屬性:
  
  表14-2:insert 標記的屬性
  
  屬性名(Attribute
  
  屬性名(Attribute )   》 〜       目前Tiles /元件上下文的屬性名稱,這個屬性值是由name 屬性來傳遞的。
  beanName    Bean 的名稱作為值來使用.Bean是從指定的內容中獲得。
  假如有的話,Bean可以從指定的上下文中獲得。否則就得使用pageContext.findAttribute( ) 方法取得。 假如beanPRoperty 屬性已經指定,也可以從對應Bean屬性得到這個值 。
  假如,這個Bean(或Bean的屬性值)是某個屬性類別(Direct, Instance,等等)的實例, 那麼插入過程要依照類別的類型而定。另外,呼叫Bean 的toString( ) 方法,並傳回值為String,並傳給name屬性。
  beanProperty  Bean 屬性(property)的名字,假如指定,那麼這個值從
  Bean的屬性(property)中獲得.
  beanScope    〔〔),假如的作用範圍。 Bean的範圍可以是任何的JSP, 元件(component),或是模板(template)。在後兩者情況(組件,模板),bean 可以在Tiles (tile)/組件(component)/模板(template)內容中
  component    一個描述tile 或模板(template)URI的字符串. 模板(template),頁(page)和元件(component)屬性必須有嚴格相同的行為
  controllerUrl   在頁被插入前,控制器(controller)的直接URI 。 這個URI通常用來指示一個strUCt action. 這個控制器(action) 是用來為inserted tile 預備資料的。只能有 一個controllerUrl 或 controllerClass
  controllerClass 頁面(page)被插入前,直接呼叫的一種控制(control)類別的類型。這個類別是用來為inserted tile 預備資料的。只能有 一個controllerUrl 或 controllerClass 。這個類別實作或擴充下列類別之一:org.apache.struts.tiles.Controller, org.apache.struts.tiles.ControllerSupport,或org.apache.struts.action.Action.
  definition     Insert定義的名稱。定義在一個集中的文件中被定義。現在,僅僅一個工廠(factory)的定義可以用這個屬性插入。插入一個用definition定義的定義,用beanName="".
  flush     true 或false. 假如true, 當前頁會在tile insertion.前輸出流
  ignore  name 這個屬性而存在的屬性所存在的屬性而存在的屬性,只是會回傳一個什麼都沒有寫得結果。初始值設定為false,可以拋出一個 runtime exception
  name    一個要被插入得實體(entity)的名字。找出依照下面的順序 definition, attribute, 然後 page.
  page    一個表示tile 或 template 的URI字串。 template,page, 和 component 屬性要嚴格的有同樣的行為
  role    假如使用者是指定的角色,那麼這個標記才會起作用,否則,這個標記會被忽略掉,並且不會寫出任何內容。
  template    一個表示tile 或 template 的URI字串。 template,page, 和 component 屬性要嚴格的有同樣的行為
  
  definition 標籤
  definition 標籤用bean的定義方法創建一個tile (template),這個新創建的bean在輸出 scoperequested scoperequested。 definition 標籤的有些語法和insert 一樣。新的定義可以擴充在definition factory (xml file)中已經描述過的定義,並且可以重載先前定義的參數。
  
  Table 14-3 列出了definition 標籤支援的屬性
  
  屬性名   描述
  extends 可以用來擴展在父定義的父定義了這個父定義。
  id 定義bean的名稱,這個屬性是必需的
  page 要插入template/component 的URL 。和template.一樣。
  role 在插入一個定義前,進行檢查role.假如當前用戶並沒有定義這個role,那麼這個定義將不會被插入。再插入的時候進行檢查,而不是在定義的時候。
  scope 在新定義bean 的時候被創建。假如沒有指定,預設值是page scope.
  template tile/component/template (a JSP page)的URL .
  下面的片段展示瞭如何在JSP中使用definition標籤。
  
    id="storefront.default"
  page="/layouts/storefrontDefaultLayout.jsp"
  scope="request">
  
  
  
 /tiles:definition>
  
  一個完整的例子將在這章後面的"Declaring Definitions in a JSP Page" 中展示
  
  put 標籤🎀 標籤用一個組件發送到組件。 這個標籤只能在insert 或 definition 標籤內部使用。 put標籤的值被value 屬性或標籤體指定。也經常被指定值得類型。
  string: 文如其名
  page 或template: 內容包含指定的URL. 名字通常以URL用.
  definition: 內容從指定(from factory)的定義獲得. 名字以已定義的名字使用。假如type 已經使用, 他就會被get 或insert 標籤插入到tile. 假如type 屬性沒有被指定,則內容是不確定的untyped,除非它來自一個typed bean.
  提示: Setting direct="true" 與setting type="string" 是相同的.
  
  Table 14-4 列出了put 標籤的屬性。
  
  屬性名     描述
  beanName    Bean 的名稱,和值(value)的使用方法一樣.Bean是從非凡的內容中獲得。如果有的話,還可以用pageContext.findAttribute( ) 方法來取得。 假如beanProperty 屬性已經指定,可以從對應Bean屬性取得這個值 。
  beanProperty  Bean 屬性(property)的名字,假如指定,那麼這個值從Bean的屬性(property)中得到.
  beanScope    Bean的作用範圍,假如沒有指定,pageScope    Bean的作用範圍,假如沒有指定,pageScope    Bean的作用範圍,假如沒有使用,page Bean的範圍可以是任何的JSP, 元件(component),或是模板(template)。在後兩者情況(組件,模板),bean 可以在 Tiles (tile)/組件(component)/模板(template) 內容中
  content     Content 在tile 範圍內。 屬性相當於value 屬性,增加是為了於JSP template tags 相容。 .
  Direct     Content的控制方法: true表示Content直接顯示; false意味著content 被包含。 false 是預設值。也是指定content 型別的一種方法。假如 direct="true", content是 "string"; 假如 direct="false", content 是 "page".增加這個屬性是為了於JSP template tags 相容。 .
  Name     屬性的名稱(name).
  Role     假如使用者是指定的角色,那麼這個標記才會起作用,否則,這個標記會被忽略掉,並且不會寫出任何內容。
  Type     content 的型別(type)。有效值是"string", "page", "template", 或 "definition".
  value     屬性的值,可以是String 或 Object. 值是直接被指派的。 (value="avalue") 或從一個bean 獲得。一個value, content, 或 beanName 一定存在。
  putList 標籤
  putList 標籤建立一個list,在 tile 中以值傳遞。 list 元素用add 標籤增加。這個標籤只能在insert 或definition 標籤中使用。
  
  Table 14-5 列出putList 標籤的屬性。
  
  屬性名 描述
  Name List 的名稱。這個屬性是被要求的。
  
  add 標籤
  add 標籤是增加一個element 到四周的list 中。這個標籤只能在putList 標籤中使用。這個值可以直接被指派。 (value="avalue") 或從一個bean中獲得。 一個value 或beanName 必須被指定。
  
  Table 14-6 列出 add 標籤的屬性。
  
  屬性名      描述
  beanName       Bean 的名稱,和值(value)的使用方法是使用非凡的內容。假如有的話,還可以用pageContext.find 

 以上就是在Struts中使用Tiles框架的內容,更多相關文章請關注PHP中文網(www.php.cn)! 


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?Mar 17, 2025 pm 05:46 PM

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?Mar 17, 2025 pm 05:44 PM

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?Mar 17, 2025 pm 05:43 PM

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Mar 17, 2025 pm 05:35 PM

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境