国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在Struts中使用Tiles框架

2019-11-18 15:56:37
字體:
來源:轉載
供稿:網友

  這是Jakarta Struts編程一書中使用 Tiles框架系列的第三部分,主要闡述了如何使用標記庫(包括:insert, definition, put, putList, add, get, getAsString, useAttribute, importAttribute, and initComponentDefinitions).
  
  Tiles標記庫(The Tiles Tag Library)
  這一部分介紹Tiles 框架使用的jsp自定義標記。表14-1列出了框架可用的標記 。這些標記與其他一些基于模板的框架所提供的標記是非常相似的,但是Tiles框架中蘊含著更豐富的功能。
  
  表 14-1: Tiles框架標記庫中的標記
  
  標記名(Tag name)           描述(Description)
  Add     增加一個元素到環境列表中。
  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 name)      描述(Description)
  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的作用范圍,假如沒有指定, pageContext.findAttribute( ) 方法可以使用。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     假如這個屬性設置為 true 并且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在requested scope用一個id來標識。definition 標簽的有些語法和insert 一樣。新的定義可以擴展在definition factory (xml file)中已經描述過的定義,并且可以重載以前定義的參數。
  
  Table 14-3 列出了definition 標簽支持的屬性
  
  屬性名   描述
  extends 可以用來擴展的父定義,這個父定義在definitions factory被定義了。
  id 定義bean的名稱,這個屬性是必需的
  page 要插入template/component 的URL 。和template.一樣。
  role 在插入一個定義前,進行檢查role.假如當前用戶并沒有定義這個role,那么這個定義將不會被插入。再插入的時候進行檢查,而不是在定義的時候。
  scope 在新定義bean 的時候被創建。假如沒有指定,默認值是page scope.
  template tile/component/template (a JSP page)的URL .
  下面的片斷展示了如何在JSP中使用definition標簽。
  
  <tiles:definition
  id="storefront.default"
  page="/layouts/storefrontDefaultLayout.jsp"
  scope="request">
  <tiles:put name="header" value="/common/header.jsp" />
  <tiles:put name="menubar" value="/common/menubar.jsp" />
  <tiles:put name="copyright" value="/common/copyright.jsp" />
  </tiles:definition>
  
  一個完整的例子將在這章后面的"Declaring Definitions in a JSP Page" 中展示
  
  put 標簽
  put 標簽用來傳遞屬性到一個tile 組件。 這個標簽只能在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的作用范圍,假如沒有指定,pageContext.findAttribute( ) 方法可以使用。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)的使用方法一樣.Bean是從非凡的內容中獲得。假如有的話,還可以用pageContext.find

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南溪县| 襄城县| 贡山| 湖南省| 汉源县| 措勤县| 荔浦县| 永济市| 全州县| 陆川县| 漳平市| 龙川县| 漳浦县| 资溪县| 阳谷县| 平江县| 长岛县| 宜都市| 肥东县| 南乐县| 大理市| 光山县| 东阳市| 赤壁市| 永川市| 延寿县| 冕宁县| 营口市| 琼海市| 浑源县| 冷水江市| 泰顺县| 漯河市| 依安县| 夏津县| 电白县| 兰西县| 青浦区| 秦皇岛市| 磴口县| 乳山市|