Struts2(八)---通用標籤&表單標籤

前言:若需要使用Struts2的標籤,需要添加

<%@ taglib uri="/struts-tags" prefix="s" %> 

一:通用標籤
(1)property標籤:用來輸出一個值棧屬性的值

名字 類型 默認值 說明
default String 如果value值沒有給定或爲null,將顯示該屬性值
esxape boolean true 可選,是否對HTML特殊字符進行轉義
value String 來自棧頂對象 將要顯示的值

(2) url標籤 :動態創建一個URL

名字 類型 默認值 說明
action String 指定生成的URL爲哪個action
includeParams String get 可選,指定是否包含請求參數,可以取三個值之一:get,all,one
method String 可選,指定action的方法,當用action屬性來生成url時,如果指定該屬性,url將鏈接到指定的action方法上
namespace String 可選,指定URL的命名空間
value String 可選,指定url生成的值
var String 可選,指定用來被壓入contextMap中的鍵值

(3)param標籤:用來把一個參數傳遞給含着它的那個標籤

名字 類型 默認值 說明
name String 將傳遞給外層標籤的參數的名字
value String 將傳遞給外層標籤的參數的值;無論在給出value值時有沒有使用%{},struts都會對它進行OGNL求值;如果想傳遞一個String類型的字符串作爲參數值,必須把它用單括號括起來;

(4)set標籤:用來在以下Map對象裏創建一個鍵值對:
~valueStack值棧的contextMap值棧;
~Map類型的application對象;
~Map類型的session對象;
~Map類型的request對象;
~Map類型的page對象;

名字 類型 默認值 說明
name String 將被創建的屬性的鍵
value String 指定一個表達式,將計算結果賦給變量,如果沒有執行value屬性,默認將棧頂對象賦給對象
scope String action 變量範圍有application,session,request,page和action(默認)

注意:在使用默認scope的值,即action的範圍的時候,value屬性值會保存在request和OGNLContext(OGNL 上下文)中.
(5)push標籤
~push標籤將把一個對象壓入ValueStack,而不是壓入ContextMap
~push標籤在標籤起始時把一個對象壓入棧,標籤結束時將對象彈出棧

名字 類型 默認值 說明
Value String 將被壓入Value Stack棧的值

(6)if,else和else if標籤
~這三個標籤用來進行條件測試,他們的用途和用法類似於if,else和else if關鍵字.其中if和else if必須要有test屬性.

名字 類型 默認值 說明
test Boolean 測試條件

成績等級:
<s:if test="#score < 60">不及格</s:if>
<s:elseif test="#score < 80">良好</s:elseif>
<s:else>優秀</s:else>

(7)iterator標籤
· iterator標籤用來遍歷每一個數組,Collection或一個Map,並把這個可遍歷對象裏的每一個元素依次壓入和彈出valueStack棧

名字 類型 默認值 說明
value String 將被遍歷的可遍歷對象
status
var String 用來引用這個遍歷對象中的當前元素的變量

·iterator標籤的status屬性的屬性值

名字 類型 默認值 說明
index Integer 各次遍歷的下標值(從0開始)
count Integer 當前元素總數
first boolean 當前元素是否第一個數
last boolean 當前元素是否爲最後一個元素
even boolean 當前元素是否爲偶數
odd boolean 當前元素是否爲奇數
modulus int 這個屬性需要一個輸入參數,它的返回值是count屬性值除以那個參數的餘數
 <s:iterator value="#request.persons">
     ${name}--${city}<br>
  </s:iterator>

  <s:iterator value="#request.persons">
    <s:property value="name"></s:property>  --- <s:property value="city"></s:property><br>
  </s:iterator>

  <br>
  <s:iterator value="persons" var="p" status="s">
   ${s.index}--${p.id}--${p.name}--${p.city}<br>
   當前元素的總數:<s:property value="#s.count"></s:property><br>
   當前元素是否爲第一個元素:<s:property value="#s.first"></s:property><br>
  當前元素是否爲最後一個元素:<s:property value="#s.last"></s:property><br>
  當前元素是否爲偶數:<s:property value="#s.even"></s:property><br>
  當前元素是否爲奇數<s:property value="#s.odd"></s:property><br>
模量:<s:property value="#s.modulus(2)"></s:property><br>

  </s:iterator>

(8)sort標籤:用來對某一個可遍歷對象裏的元素進行排序

名字 類型 說明
comparator java.util.Comparator 在排序過程中使用的比較器
source String 將進行排序的可遍歷對象
var String 用來引用因排序而新生成的可遍歷對象的變量

//比較器
public class PersonComparator implements Comparator<Person>{

    @Override
    public int compare(Person o1, Person o2) {
        // TODO Auto-generated method stub
        return o1.getName().compareTo(o2.getName());
    }

}
//Action類中的目標方法

    public String testTag(){
        this.productId = 1008;
        this.productName = "LOL";
        this.description ="Game";
        this.price = 2008;
        PersonComparator pc = new PersonComparator();
        requestMap.put("pc", pc);
          persons.add(0, new Person(1,"FF","FFF"));
          persons.add(1, new Person(2,"GG","GGG"));
          persons.add(2, new Person(3,"HH","HHH"));
          persons.add(3, new Person(4,"II","III"));
          persons.add(4, new Person(5,"QQ","QQQ"));
          return "testTagSuccess";
//jsp頁面
<s:sort comparator="#request.pc" source="#request.persons" var="p">
   <s:iterator value="#attr.p">
       ${id} --- ${name}  --- ${city}<br>
   </s:iterator>
</s:sort>

(9)date標籤:用來對Date對象進行排版

名字 類型 默認值 說明
format String 可選,日期的格式
name String 將被排版的日期值
nice boolean false 可選,指定是否要輸出指定日期和當前日期之間的時間差
var String 可選,用來引用被壓入valueStack棧的日期值的變量

注:format屬性的值必須是java.text.SimpleDateFormat類裏定義的日期/時間格式之一
(10)a標籤:將呈現一個HTML鏈接,這個標籤可以接受HTML語言中a元素所能接受的所有屬性,支持OGNL解析.
(11)
action標籤:用在頁面上執行一個action;
action標籤還會把當前Action對象壓入ValueStack值棧的ContextMap子棧;
(12)include標籤:用來 把一個Servlet或JSP頁面的輸出包含到當前頁面裏來;
二:表單標籤
(1)使用表單標籤的優點:①表單回顯 ②對頁面進行佈局和排版
(2)標籤的屬性可以被賦值爲一個靜態的值或一個OGNL表達式,如果在賦值時使用了一個OGNL表達式並把它用%{}括起來,這個表達式將會被求值
(3)表單標籤的共同屬性

名字 數據類型 說明
cssClass String 用來呈現這個元素的CSS類
cssStyle String 用來呈現這個元素的CSS樣式
title String 指定HTMLtitle屬性
disabled String 指定HTMLdisabled屬性
label String 指定一個表單元素在HTML和ajax主體裏的行標
name String 指定HTML name屬性.一個輸入元素的name屬性將被映射到Action屬性
required boolean 在HTML主題裏,這個屬性是否要給當前行標加上一個星號*
value String 指定一個表單元素的值

注:上述屬性只有沒有使用Simple主體時纔可以使用
(4)form標籤:用來呈現HTML語言中的表單元素

名字 數據類型 默認值 說明
action String 當前action 提交這個表單將觸發的action
entype String 表單的entype屬性
method String post 提交方法
namespace String 提交這個表單將觸發的action所在的命名空間

(5)textfield,passworld,hidden標籤
· textfield標籤將被呈現爲一個輸入文本字段,Password標籤將被呈現爲一個口令字段,hidden 標籤將被呈現爲一個不可見字段

名字 數據類型 默認值 說明
maxlength Integer 輸入字符的最大個數
readonly boolean false 用來表名該輸入元素是不是隻讀的
size Integer 尺寸屬性

· password 標籤擴展自textfield標籤,多了一個showPssword屬性,該屬性是Boolean,默認值是false,它決定着表單回顯是否顯示輸入的密碼
(6)submit標籤

名字 數據類型 默認值 說明
action String Html action屬性
align String Html align屬性
method String method屬性
type String input 這個屬性決定着提交按鈕的屏顯效果類型,它的可取值是input,button或image

(7)textare標籤將呈現爲一個HTML文本域元素

名字 數據類型 默認值 說明
cols Integer HTML的cols屬性
readonly boolean false 用來表名該textarea元素是不是隻讀的
rows integer HTML rows屬性
wrap boolean Html的wrap屬性

(8)checkbox標籤,將呈現爲一個HTML複選框元素,該複選框元素通常用於提交一個布爾值.
注:struts2的checkbox標籤爲單個複選框元素創建了一個配對的不可見字段,就是爲了解決一個侷限性(如果該複選框未被選中,在請求中就不會增加一個請求參數)
checkbox標籤有一個fieldvalue屬性,該屬性指定的值將在用戶提交表單時作爲被選中的單選框的實際值發送到服務器;
(9)radio標籤,將呈現一組單選按鈕

名字 數據類型 默認值 說明
list String 用來充當選項來源的可遍歷對象
listKey String 用來提供選項值得對象屬性
listValue String 用來提供對象行標的對象屬性

(10)select標籤,即呈現一個select元素

名字 數據類型 默認值 說明
headerkey String false 選擇列表中第一個選項的鍵
headerValue String 選項中第一個選項的值
list String 用來充當選項來源的可遍歷對象
listkey String 用來提供選項值的對象屬性
listValue String 用來提供行標的對象屬性
multiple boolean false 指明是否允許多重選擇(多選多)

S:optgroup可以用作s:select的子標籤,用於顯示更多的下拉框
注:必須有鍵值對,而不能使用一個集合,讓其值即爲鍵又作爲值
例:

<s:select list="{11,12,13,14,15,16,17,18,19,20}" name="age" label="年齡" headerKey="請選擇" headerValue="請選擇" multiple="ture" >
<s:optgroup label="21-30" list="#{'21':'21','22':'22','23':'23'}"></s:optgroup>

</s:select>

效果
這裏寫圖片描述
(11)checkboxlist標籤,將呈現一組多選框

名字 數據類型 默認值 說明
list String 用來充當來源的可遍歷對象
listkey String 用來提供選項值的對象屬性
listvalue String 用來提供行標的對象屬性

注:服務器需要使用集合類型,從而保證能夠正常回顯
例:

<s:checkboxlist label="城市" name="city" list="#request.cities" listKey="cityId" listValue="cityName"></s:checkboxlist>

這裏寫圖片描述
(12)主題
修改主題的方式:
①通過UI標籤的theme屬性;
②在一個表單裏,若沒有給出某個UI標籤的theme,它將使用這個表單的主體;
③在Page,Request,Session或Application中添加一個theme屬性
④修改struts.properties文件中的struts.ui.theme屬性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章