Struts標籤庫詳解
Struts提供了五個標籤庫,即:HTML、Bean、Logic、Template和Nested。
標籤庫 | 說明 |
HTML 標籤 | 用來建立能夠和Struts 框架和其他相應的HTML 標籤互動的HTML 輸入表單 |
Bean 標籤 | 在訪問JavaBeans 及其屬性,以及定義一個新的bean 時使用 |
Logic 標籤 | 管理條件產生的輸出和物件集產生的迴圈 |
Template 標籤 | 隨著Tiles框架包的出現,此標記已開始減少使用 |
Nested 標籤 | 增強對其他的Struts 標籤的巢狀使用的能力 |
標籤的公共特徵
使用固定屬性名稱的Struts 標籤:
屬性 | 說明 |
id | 命名自定義標籤建立時的指令碼變數名。 |
name | 指出關鍵字值,在該關鍵字下可以找到一個存在的bean 。如果給出了scope屬性,則僅僅在scope中查詢。否則,根據標準的順序在各種scope中查詢:(page, request, session, or application)。 |
property | 指出bean 中的某個屬性,可以在其中檢索值。如果沒有標明,則使用物件本身的值。 |
scope | 定義了Bean在哪個範圍(page, request, session, or application)中被查詢。如果沒有標明按順序查詢。指令碼變數(見id)將在相同的範圍中建立。 |
Struts 標籤也支援巢狀引用,例如:
Property="foo.bar.baz" 這相當於進行下面的呼叫: getFoo().getBar().getBaz(); 或者做為setter: getFoo().getBar().setBaz(value); |
雖然Struts 標籤的設計原意是為了避免使用scriptlet,scriptlet的表示式還能夠提供給所有的Struts 標籤使用。但請確保使用完整的表示式:
錯誤: 正確: 表示式必須提供整個屬性值 |
Html 標籤庫
1. 標籤它有兩個屬性:locale和xhtml,兩者都不是必需的。
此行程式碼解析後: |
2. 說明:生成的結果取決於Struts應用程式所位於的伺服器的locale。如果你將應用程式部署到一個不同locale的伺服器,你不需要改變程式碼,Locale會自動調整。
3. 標籤:表示所包含頁面的絕對位置。這個標籤只有內嵌在head標籤中才有效。
此行程式碼解析後: 4. 標籤最重要的屬性page:圖象檔案的路徑,前面必須帶有一個斜線。其它屬性:heignt、width、alt。 5. 標籤 6. (它包含在模組的MessageResources中查詢的message keys)、或是型別為org.apache.struts.action.ActionErrors的一個物件。 如果在應用程式資源中存在相應的資訊,那麼就可以用下面這些可選的message keys: · errors.header or errors.prefix:相應的資訊在錯誤資訊的單獨列表前顯示。 · errors.footer or errors.suffix:相應的資訊在錯誤資訊的單獨列表後顯示。 7. 標籤系列使用標籤時必須遵循一些規則: 1. 標籤中必須包含一個action屬性,它是這個標籤中唯一必需的屬性。如果不具備該屬性則JSP頁面會丟擲一個異常。之後你必須給這個action屬性指定一個有效值。一個有效值是指應用程式的Struts配置檔案中元素裡的任何一個子元素的訪問路徑。而且相應的元素中必須有一個name屬性,它的值是form bean的名稱。
2. 3. 任何包含在中用來接收使用者輸入的標籤( 標籤還有一些不是必須但很有用的“次要”屬性。比如,你可以用focus屬性來生成JavaScript,它會“定焦”(focus)到該form所包含的一個元素上。使用focus屬性時你需要給它指定元素的名稱。
有沒有看到這個標籤庫是如何建立JavaScript來定焦到password元素上的? 這也是該庫讓人著迷的地方之一。你不用擔心如何在客戶端進行程式設計,它會幫你自動生成。還可以看到,標籤中method屬性的預設值是POST。 該標籤中的一個很重要的屬性是"redisplay",它用於重新顯示以前輸入到這個區域中的值。該屬性的預設值為true。然而,為了使password不能被重新顯示,你或許希望將該屬性的值設為false。 標籤和標籤: 遺補:1.)標籤 forward屬性:連結到一個global forward上;action屬性:連結到一個action mapping上; href屬性:這個連結會轉發給控制器,由控制器做決定;page屬性:一個相對的連結。 用page屬性連結到action上: 注意,上面的程式碼中你不必指定web的關聯。相反的,如果你使用href屬性,你就必須像下面所示指出web的關聯(這裡的關聯就是struts-exercise): 很明顯,當你在相同的web應用程式中做連結是,它比page屬性更加好。你也能用href在不同的伺服器上建立連結: 另一種連結到html-link.do的方法是用action屬性: 你也可以以硬編碼的方式使用引數: 或者使用paramId, paramName, and paramProperty屬性:
解析後的程式碼: 另外,還能使用帶name屬性的Map來實現傳遞多個引數:
你也能夠連結到Map型別的action上,上面的程式碼解析後的結果: 2.) select和option標籤 的屬性:property-與ActionForm中的某個屬性對應;size-顯示option的數目;multiple-預設為fales,表示不能多選,當設定為true時,property對應的ActionForm的屬性必須為陣列。 的屬性:key、local、bundle-指定Resource Bundle中的內容。例如 它和配置檔案中的 Bean 標籤庫 此標籤庫和Java Bean有很強的關聯性,設計的本意是要在JSP 和JavaBean 之間提供一個介面。Struts 提供了一套小巧有用的標籤庫來操縱JavaBean和相關的物件:cookie、 header、 parameter、 define、write、message、 include、page、resource、size、struts。 1. bean:cookie、bean:header、bean:parameter這三個標籤用來重新得到cookie, request header和request parameter。
bean:header和bean:parameter標籤定義了一個字串;bean:cookie標籤定義了一個Cookie物件。你可以使用value屬性做為預設值。如果找不到指定的值,且預設值沒有設定的話,會丟擲一個< 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8271432/viewspace-892830/,如需轉載,請註明出處,否則將追究法律責任。
下一篇:
Java的30個基本概念
請登入後發表評論
登入
全部評論
|
相關文章
- struts2標籤詳解 .
- Struts2的OGNL標籤詳解
- struts2 標籤庫
- Struts2 - OGNL表示式和Struts2標籤庫
- input 標籤詳解
- img標籤詳解
- ANT標籤詳解
- HTML標籤詳解HTML
- 哪裡可以找到struts的標籤庫的詳細參考說明
- Struts標籤、ognl表示式、el表示式、jstl標籤庫這四者之間JS
- struts2標籤總結
- POM.xml 標籤詳解XML
- Git tag標籤用法詳解Git
- HTML常見標籤詳解HTML
- 【原創】Struts1.x系列教程(6):Bean標籤庫Bean
- springmvc常用註解標籤詳解SpringMVC
- dedecms模板標籤dede:channelartlist詳解
- Go 結構體標籤詳解Go結構體
- spring xml配置標籤詳解SpringXML
- 自定義分頁標籤詳解
- mybatis中foreach標籤詳解MyBatis
- HTML5標籤embed詳解HTML
- Maven中optional標籤詳解(轉)Maven
- 哪裡有關於Struts標籤庫的詳細介紹和應用例項呢?
- 【原創】Struts1.x系列教程(7):Logic標籤庫
- Struts配置檔案詳解,web.xml以及struts-cofig.xml,以及struts-cofig.xml中各個標籤的作用。(轉)WebXML
- 關於Struts的logic:iterator標籤
- HTML5常見標籤詳解HTML
- "JSTL"的標籤庫和"Struts"的標記庫的問題?JS
- HTML表單標籤詳解:如何用HTML標籤打造互動網頁?HTML網頁
- 關於struts 的logic:iterate的標籤
- 標籤實現預載入功能詳解
- JavaScript物件導向修改標籤頁詳解JavaScript物件
- maven中的scope標籤類別詳解Maven
- 常用的HTML標籤詳解與總結HTML
- 詳細瞭解HTML標籤內容模型HTML模型
- 【原創】Struts1.x系列教程(4):標籤庫概述與安裝
- JSP簡單標籤標籤庫開發JS