Struts2 標簽庫

1.1Struts2標簽使用原理解疑

首先,我們能夠打開struts-tags.tld 這個文件進行觀察,他是Struts2自標簽定義文件。可以看到,所有標簽定義都是在<taglib></taglib>之間定義。<tag></tag>用來定義一個具體標簽,同時每個標簽都可以有很多自己的屬性,這些屬性的定義都是以<attribute></attribute>來定義。
<tlib-version></tlib-version>之間定義的是標簽庫的版本。<jsp-version></jsp-version>定義的是標簽庫支持JSP的哪個版本。<short-name></short-name>其實是標簽庫的默認名,<uri</uri>定義的是標簽庫的URL,在JSP中會使用到。<display-name></display-name>是顯示名。<desription></desription>是標簽庫的記述,記述標簽庫的使用用途等。
<attribute>中<name></name>是屬性名稱定義。<required></required>表示的該屬性是否是必須的屬性,如果必須的則<required></required>之間為true,否則為false。<rtexprvalue></rtexprvalue>表示的是可否使用表達式,大多數標簽都是為false。這里不是不能是使用表達式,而是恰恰相反表示可以使用表達式。<description></description>定義和前面介紹相同。

1.2 OGNL 表達式語言介紹
OGNL(Object Graph Navigating Language)對象導航語言。

Struts2 中將應用范圍中的數據以及Action處理的數據都存儲在一個區域中。Struts2種叫做 " valueStack ",中文名為:值棧。而OGNL就是從值棧中取出數據,并在某些條件下進行數據過濾和計算的表達式語言。

在OGNL中常使用? ^ $ 分別對應著:all first last.

1.3 Struts2 控制標簽簡介

Struts2的控制標簽主要用處是控制JSP等視圖中流程的轉向問題。這里筆者將一些常用的標簽進行說明。

1.3.1各個標簽進行說明

append標簽:將多個集合合并成一個集合

generator標簽:使用指定的分隔符將該字符串進行分隔

if、else、else if 標簽:進行一系列的判斷已達到目的。

iterator 標簽:對某個集合中所有屬性進行迭代遍歷

merge 標簽:與append標簽功能十分相似,但是集合中各個元素的排列順序是不同 的。

sort 標簽:對指定的數據集合進行排序或分類。當然,可以自定義自己的排序或分類條件。

subset 標簽:讀取子集條件將某集合的子集讀取出來。也可以自定義自己的讀取子集條件,這里就不得不引進decider,他就是讀取子集的條件,可以不寫,如果寫了,則表明一個Decider對象實例,需要開發者自行定義此對象實例。

1.4 Struts2 數據標簽簡介

action標簽:實現在JSP頁面中調用Struts2的Action。其中ID是需要調用的Action的標識定義,name才是Action的名字,executeResult屬性,它是一個布爾型的值,如果為true則表示在JSP頁面中返回調用的Action的結果視圖,反之則不顯示,默認值是false。還有一個是ignoreContextParams,該屬性是來決定視圖中請求的參數是否需要傳遞到Action中去。顧名思義,他也是一個布爾型的值,如果為false則需要把參數傳遞到Action中,反之則不傳遞。它的默認值是false。

bean 標簽:用來創建一個具體的JavaBean實例。其中id是對需要創建的JavaBean實例對象進行標識定義,name是Javabean的名字,即類名。在子標簽中可以使用 param 標簽定義一些屬性并賦值。另外,可以在property標簽中進行顯示迭代。

date 標簽:用來在JSP等視圖界面上顯示日期,該日期的格式可以自己定義,其中id也是對需要顯示的日期進行標識定義,name是日期變量名。date標簽中還有一個比較特殊的屬性 nice 。 這個是用來輸出當前日期和需要顯示的日期之間的時間差。特別是在開發需要開發倒計時這樣的功能時,就顯得特別的有用。

debug 標簽:給開發人員提供一個在視圖上調試代碼的功能。沒有太多,只需要在代碼的前面加上一句:<s:debug />即可。

include 標簽:和JSP中的include功能相同,都是在一個頁面包含另一個頁面文件顯示的內容。但是至于在struts.xml中是不是需要再定義一個Action則取決于被包含的頁面上有沒有動態的數據。

push 標簽:將某個具體的值放在值棧的最頂處。id屬性也是對需要放置在值棧棧頂的值的標識定義。name是該值的名字。

set 標簽:對一個變量指定一個值。name屬性是對該變量名字的定義,value屬性就是這個給該變量指定的值。如果不指定,Struts2 是自動將值棧中棧頂的值制定給他。

url 標簽:生成一個URL地址。value屬性是指定生成的URL地址,但是它只顯示指定的Action或Jsp,而不是把URL的全路徑顯示出來,而action屬性則是制定URL地址是哪一個action,然后將struts.xml 配置文件中該action的result中指定的路徑全部顯示出來,如果同時顯示定義action、value,則struts2是以value指定為準。如果都不顯示定義,則以當前視圖界面的URL為指定生成的URL地址。

1.5 Struts2 表單標簽簡介

這個簡單的就不再說明了,但是有兩個復雜標簽真是醉生夢死啊。。。

doubleselect 和 optiontransferselect ?

太復雜。。。還沒懂

<s:head /> 生成頁面文件的HEAD部分,生成了對Ajax框架dojo的配置文件的引用或代碼。

<s:token />防止重復提交一個表單數據。

1.6 非表單標簽簡介

大部分都是界面方面的標簽,這里就不再一一展示了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 上篇文章我們介紹struts2標簽庫中的控制標簽的基本使用和部分原理,本篇文章接著了解下標簽庫中有關數據標簽的使用...
    Single_YAM閱讀 1,824評論 0 4
  • 前面幾篇文章我們介紹了有關struts2的基本內容,簡單理解了整個框架的運作流程。從本篇開始我們逐漸了解和使用st...
    Single_YAM閱讀 859評論 0 5
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,739評論 18 399
  • 最近老公身體也出現了毛病,女兒上次把我嚇了一下,我的身體自從去年底一直沒有很舒適的時候,剛開始耳朵上火,現在胃部舒...
    你好3306閱讀 175評論 0 0