struts2.x 標籤庫 及 用法大全

一、 url標籤
 簡介
url標籤用於生成一個URL地址,可以通過url標籤指定param子元素,從而向指定URL發送請求參數。
1. jsp代碼
<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title>使用s:url來生成一個URL地址</title>
</head>


<body>
<h2>s:url來生成一個URL地址</h2>
只指定value屬性的形式。<br>
<s:url value="editGadget.action"/>
<hr>


指定action屬性,且使用param傳入參數的形式。<br>
<s:url action="showBook">
    <s:param name="author" value="'yeeku'" />
</s:url>
既不指定action屬性,也不指定value屬性,且使用param傳入參數的形式。<br>
<s:url includeParams="get"  >
    <s:param name="id" value="%{'22'}"/>
</s:url>
同時指定action屬性和value屬性,且使用param傳入參數的形式。<br>
<s:url action="showBook" value="xxxx">
<s:param name="author" value="'yeeku'" />
</s:url>

</body></html>

備註:我們用的最多的是以下的方式:
<s:url id="url" action="preModifyCategoryName" includeParams="none" namespace="/category">
    <s:param name="categoryId" value="%{categoryId}"/>
  </s:url>
  <s:a href="%{url}">
    <s:text name="modify_category_name"/>
  </s:a>
2. 頁面效果
s:url來生成一個URL地址
只指定value屬性的形式。
editGadget.action
________________________________________
指定action屬性,且使用param傳入參數的形式。
/portal/test/showBook.action?author=yeeku
________________________________________
既不指定action屬性,也不指定value屬性,且使用param傳入參數的形式。
/portal/test/s-url.jsp?id=22
________________________________________
同時指定action屬性和value屬性,且使用param傳入參數的形式。
xxxx?author=yeeku

二、 s:checkboxlist標籤
 簡介
Checkboxlist標籤可以一次創建多個複選框,用於一次生成多個HTML標籤中的<inputtype=”checkbox” …/>,它根據list屬性指定的集合來生成多個複選框。
1. jsp代碼
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title>使用s:checkboxlist生成多個複選框</title>
<s:head/>

</head>
<body>
<h3>使用s:checkboxlist生成多個複選框</h3>
<s:form>
<!-- 使用簡單集合來生成多個複選框 -->
<s:checkboxlist name="a" label="請選擇您喜歡的圖書" labelposition="top"
list="{'Spring2.0寶典' , '輕量級J2EE企業應用實戰' , '基於J2EE的Ajax寶典'}"/>
<!-- 使用簡單Map對象來生成多個複選框 -->
<s:checkboxlist name="b" label="請選擇您想選擇出版日期" labelposition="top"
list="#{'Spring2.0寶典':'2006年10月' , '輕量級J2EE企業應用實戰':'2007月4月' , '基於J2EE的Ajax寶典':'2007年6月'}"
listKey="key"
listValue="value"/>
<s:bean name="lee.BookService" id="bs"/>
</s:form>
</body>
</html>
備註
 <!-- 使用集合裏放多個JavaBean實例來生成多個複選框 -->
<s:checkboxlist name="b" label="請選擇您喜歡的圖書" labelposition="top"
list="#bs.books"
listKey="name"
listValue="author"/>
 listKey:該屬性指定集合元素中某個屬性作爲複選框的value.
 listValue: 該屬性指定集合元素中某個屬性作爲複選框的標籤。

2. 頁面效果



三、 使用s:combobox生成下拉輸入框


 簡介
Combobox標籤生成一個單行文本框和下拉列表框的組合,但兩個表單元素只對應一個請求參數,只有單行文本框裏的值才包含請求參數,而下拉列表框則只是用於輔助輸入,並沒有name,也不會產生請求參數。使用該標籤,需要指定一個list屬性,該list屬性指定的集合將用於生成列表項。
1. Jsp代碼
<body>
<h3>使用s:combobox生成下拉輸入框</h3>
<s:form>
<s:combobox label="請選擇您喜歡的圖書" theme="css_xhtml" labelposition="top"
list="{'Spring2.0寶典' , '輕量級J2EE企業應用實戰' , '基於J2EE的Ajax寶典'}"
size="20" maxlength="20" name="book"/>
</s:form>
</body>
1. 頁面效果

第一步

第二步

備註:
  與<s:select …/>標籤不同的是,對於下面的下拉列表,無需指定listKey和listValue屬性,因爲此處的下拉列表,不再用於發送請求參數,而僅僅是用於輔助輸入,因此該下拉列表的value沒有任何意義。(注:使用combobox標籤時不能指定listKey和 listValue屬性)


四、 使用s:datetimepicker生成日期選擇框


 簡介
Datetimepicker標籤生成一個日期,時間下拉選擇框,當我們使用該日期,時間選擇框選擇某個日期,時間,系統會自動將選中的日期,時間輸入指定文本框。

1. Jsp代碼

<body>
<h3>使用使用s:datetimepicker生成日期選擇框</h3>
<s:form theme="simple">
日期選擇部件,指定toggleType屬性,且指定value="today"<br>
    <s:datetimepicker name="order.date" label="購買日期" toggleType="explode" value="today"/><hr>
日期選擇部件,指定了format屬性<br>
    <s:datetimepicker name="order.date" label="購買日期" displayFormat="dddd年MM月dd日"/><hr>
日期選擇部件,指定了weekStartsOn屬性<br>
    <s:datetimepicker name="order.date" label="購買日期" displayFormat="dddd年MM月dd日" weekStartsOn="2"/><hr>
時間選擇部件<br>
<s:datetimepicker label="選擇出發時間'" name="start" type="time" value="13:00"/><hr>
</s:form>
</body>
2. 頁面效果
第一步

第二步

第三步 :

第四步:

備註
 toggleType:指定日期選擇框出現、隱藏的方式,可以選擇plain,wipe,explode和fade4個值。
 value:指定當前的日期,時間。可使用today來代表今天。



五、 使用s:select生成下拉選擇框


 簡介
  Select 標籤用於生成一個下拉列表框,通過爲該元素指定list屬性,系統會使用list屬性指定的集合來生成下拉列表框的選項。
1. Jsp代碼
<body>
<h3>使用s:select生成下拉選擇框</h3>
<s:form>
<!-- 使用簡單集合來生成下拉選擇框 -->
<s:select name="a" label="請選擇您喜歡的圖書" labelposition="top" multiple="true"
list="{'Spring2.0寶典' , '輕量級J2EE企業應用實戰' , 'JavaScript: The Definitive Guide'}"/>
<!-- 使用簡單Map對象來生成下拉選擇框 -->
<s:select name="b" label="請選擇您想選擇出版日期" labelposition="top"
list="#{'Spring2.0寶典':'2006年10月' , '輕量級J2EE企業應用實戰':'2007月4月' , '基於J2EE的Ajax寶典':'2007年6月'}"
listKey="key"
listValue="value"/>
<s:bean name="lee.BookService" id="bs"/>
<!-- 使用集合裏放多個JavaBean實例來生成下拉選擇框 -->
<s:select name="b" label="請選擇您喜歡的圖書" labelposition="top" multiple="true"
list="#bs.books"
listKey="author"
listValue="name"/>
</s:form>
</body>

2. 頁面效果

第二步



六、使用s:radio生成多個單選框


 簡介
     s:radio生成多個單選框。
1. Jsp代碼
<body>
<h3>使用s:radio生成多個單選框</h3>
<s:form>
<!-- 使用簡單集合來生成多個單選框 -->
<s:radio name="a" label="請選擇您喜歡的圖書" labelposition="top"
list="{'Spring2.0寶典' , 'Spring In Action' , 'JavaScript: The Definitive Guide'}"/>
<!-- 使用簡單Map對象來生成多個單選框 -->
<s:radio name="b" label="請選擇您想選擇出版日期" labelposition="top"
list="#{'Spring2.0寶典':'2006年10月' , '輕量級J2EE企業應用實戰':'2007月4月' , '基於J2EE的Ajax寶典':'2007年6月'}"
listKey="key"
listValue="value"/>
<s:bean name="lee.BookService" id="bs"/>
<!-- 使用集合裏放多個JavaBean實例來生成多個單選框 -->
<s:radio name="c" label="請選擇您喜歡的圖書" labelposition="top"
list="#bs.books"
listKey="author"
listValue="name"/>
</s:form>
</body>

2、 頁面效果



七、使用s:optgroup生成下拉選擇框的選項組


 簡介
  Optgroup標籤用於生成一個下拉列表框的選項組。
1. Jsp代碼
<body>
<h3>使用s:optgroup生成下拉選擇框的選項組</h3>
<s:form>
<!-- 使用Map對象來生成下拉選擇框的選項組 -->
<s:select label="選擇您喜歡的圖書"
           name="book"
           list="#{'Spring2.0寶典':'李剛','輕量級J2EE企業應用實戰':'李剛','基於J2EE的Ajax寶典':'李剛'}"
   listKey="value"
   listValue="key">
   <s:optgroup label="Rod Johnson"
           list="#{'Expert One-on-One J2EE Design and Development':'Johnson'}"
   listKey="value"
   listValue="key"/>
   <s:optgroup label="David Flanagan"
           list="#{'JavaScript: The Definitive Guide':'David'}"
   listKey="value"
   listValue="key"/>
</s:select>
</s:form>
</body>

2、 頁面效果






第二步

八、使用s:optiontransferselect來生成可移動列表項的下拉列表框


 簡介
    使用s:optiontransferselect來生成可移動列表項的下拉列表框。
1. Jsp代碼
<body>
<h3>使用s:optiontransferselect來生成可移動列表項的下拉列表框</h3>
<s:form>
<!-- 使用簡單集合對象來生成可移動的下拉列表框 -->
<s:optiontransferselect
  label="請選擇你喜歡的圖書"
name="cnbook"
leftTitle="中文圖書:"
rightTitle="外文圖書"
list="{'Spring2.0寶典','輕量級J2EE企業應用實戰','基於J2EE的Ajax寶典'}"
multiple="true"
addToLeftLabel="向左移動"
selectAllLabel="全部選擇"
addAllToRightLabel="全部右移"
headerKey="cnKey"
headerValue="--- 選擇中文圖書 ---"
emptyOption="true"
doubleList="{' J2EE Design and Development', 'The Definitive Guide'}"
doubleName="enBook"
doubleHeaderKey="enKey"
doubleHeaderValue="--- 選擇外文圖書 ---"
doubleEmptyOption="true"
doubleMultiple="true"
/>
</s:form>
</body>

2、 頁面效果

備註:
   如果我們不想用它默認的圖標,我們可以添加標籤,將它默認的覆蓋掉:例如我們添加如下代碼:
     addToRightLabel="向右移動"
      leftDownLabel="下移按鈕 "
頁面效果



九、使用s:updownselect生成可上下移動選項的下拉選擇框


 簡介
         Updownselect標籤的用法非常類似於select標籤的用法,區別是該標籤聲稱的列表框可以支持選項的上下移動。
1. Jsp代碼
<body>
<h3>使用s:updownselect生成可上下移動選項的下拉選擇框</h3>
<s:form>
<!-- 使用簡單集合來生成可上下移動選項的下拉選擇框 -->
<s:updownselect name="a" label="請選擇您喜歡的圖書" labelposition="top"
moveUpLabel="向上移動"
list="{'Spring2.0寶典' , '輕量級J2EE企業應用實戰' , 'JavaScript: The Definitive Guide'}"/>
<!-- 使用簡單Map對象來生成可上下移動選項的下拉選擇框
且使用emptyOption="true"增加一個空選項-->
<s:updownselect name="b" label="請選擇您想選擇出版日期" labelposition="top"
moveDownLabel="向下移動"
list="#{'Spring2.0寶典':'2006年10月' , '輕量級J2EE企業應用實戰':'2007月4月' , '基於J2EE的Ajax寶典':'2007年6月'}"
listKey="key"
emptyOption="true"
listValue="value"/>
<s:bean name="lee.BookService" id="bs"/>
<!-- 使用集合裏放多個JavaBean實例來可上下移動選項的生成下拉選擇框 -->
<s:updownselect name="c" label="請選擇您喜歡的圖書的作者" labelposition="top"
selectAllLabel="全部選擇" multiple="true"
list="#bs.books"
listKey="author"
listValue="name"/>
</s:form>
</body>
2.頁面效果



十、使用s:doubleselect生成級聯下拉列表框


 簡介

1.Jsp代碼
<body>
<h3>使用s:doubleselect生成級聯下拉列表框</h3>
<s:form action="x" method="post" theme="simple">
    <s:doubleselect
            label="請選擇您喜歡的圖書"
            name="author" list="{'李剛', 'David'}"
            doubleList="top == '李剛' ? {'Spring2.0寶典', '輕量級J2EE企業應用實戰' , '基於J2EE的Ajax寶典'} : {'JavaScript: The Definitive Guide'}"
            doubleName="book"/>

</s:form>

</body>
2。頁面效果

備註:
   錯誤原因可能是我們的模板有bug.


十一、使用s:tree和s:treenode標籤生成靜態樹
 簡介



1。Jsp代碼
<body>
<s:tree label="計算機圖書" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
    <s:treenode theme="ajax" label="李剛" id="yeeku">
        <s:treenode theme="ajax" label="Spring2.0寶典" id="spring"/>
        <s:treenode theme="ajax" label="輕量級J2EE企業應用實戰" id="lightweight"/>
        <s:treenode theme="ajax" label="基於J2EE的Ajax寶典" id="ajax"/>
    </s:treenode>
    <s:treenode theme="ajax" label="David" id="David">
        <s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
    </s:treenode>
    <s:treenode theme="ajax" label="Johnson" id="Johnson">
        <s:treenode theme="ajax" label="Expert One-on-One J2EE Design and Development" id="j2ee"/>
    </s:treenode>
</s:tree>
</body>
2。頁面效果

十二、使用s:append標籤拼接兩個集合
 簡介
    使用s:append標籤拼接 多個集合,組成一個新的集合。
1.Jsp代碼
<body>
<s:append id="newList">
<s:param value="{'Spring2.0寶典','輕量級J2EE企業應用實戰','基於J2EE的Ajax寶典'}" />
<s:param value="{'新東方IT培訓', '東方標準職業教育'}" />
</s:append>

<table border="1" width="240">
<s:iterator value="#newList" status="st">
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
<td><s:property/></td>
</tr>
</s:iterator>
</table>
</body>
2。頁面效果

十三、使用s:append標籤拼接集合和Map
 簡介
   Append標籤用於將多個集合對象拼接起來,組成一個新的集合。通過這種拼接,從而允許通過一個<s:iterator …/>標籤就完成對多個集合的迭代。
1.Jsp代碼
<body>
<s:append id="newList">
<s:param value="#{'Spring2.0寶典':'李剛','輕量級J2EE企業應用實戰':'李剛','基於J2EE的Ajax寶典':'李剛'}" />
<s:param value="#{'新東方IT培訓', '東方標準職業教育'}" />
</s:append>

<table border="1" width="240">
<s:iterator value="#newList" status="st">
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
<td><s:property value="key"/></td>
<td><s:property value="value"/></td>

</tr>
</s:iterator>
</table>
</body>
2.頁面效果

十五、使用s:generator生成集合
 簡介
使用generator標籤可以將指定字符串按指定分隔符分隔成多個子串,臨時生成的多個子串可以使用iterator標籤迭代輸出。可以這樣理解:generator將一個字符串轉化成一個集合。在該標籤的標籤體內,整個臨時生成的集合將位於ValueStack的頂端,但一旦該標籤結束,該集合將被移出ValueStack。
1.Jsp代碼
<body>
<s:generator val="'Spring2.0寶典,輕量級J2EE企業應用實戰,基於J2EE的Ajax寶典'"
separator="," id="books" count="2"/>
<table border="1" width="240">
<%
java.util.Iterator i = (java.util.Iterator) pageContext.getAttribute("books");
while(i.hasNext())
{
String s = (String) i.next(); %>
<tr>
<td><%=s%></td>
</tr>
<%
}
%>
</table>
</body>

備註:如果指定了count屬性,則以爲這集合中最多隻能包含count個元素(就是前coun個元素);如果指定了id屬性,就可以將臨時生成的集合放置到pageContext屬性中。
2.頁面效果



3.jsp代碼
<body>
<table border="1" width="240">
<s:generator val="'Spring2.0寶典,輕量級J2EE企業應用實戰,基於J2EE的Ajax寶典'" separator=",">
<s:iterator status="st">
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
<td><s:property/></td>
</tr>
</s:iterator>
</s:generator>
</table>
</body>

4。頁面效果









用過struts1.x的人都知道,標籤庫有html、bean、logic、tiles,
而struts2.0裏的標籤卻沒有分類,只用在jsp頭文件加上
<%@ taglib prefix="s" uri="/struts-tags" %>
就能使用struts2.0的標籤庫

下面就介紹下每個標籤的用法:

A:

<s:a href=""></s:a>-----超鏈接,類似於html裏的<a></a>
<s:action name=""></s:action>-----執行一個view裏面的一個action
<s:actionerror/>-----如果action的errors有值那麼顯示出來
<s:actionmessage/>-----如果action的message有值那麼顯示出來
<s:append></s:append>-----添加一個值到list,類似於list.add();
<s:autocompleter></s:autocompleter>-----自動完成<s:combobox>標籤的內容,這個是ajax

B:
<s:bean name=""></s:bean>-----類似於struts1.x中的,JavaBean的值

C:
<s:checkbox></s:checkbox>-----複選框
<s:checkboxlist list=""></s:checkboxlist>-----多選框
<s:combobox list=""></s:combobox>-----下拉框
<s:component></s:component>-----圖像符號

D:
<s:date/>-----獲取日期格式
<s:datetimepicker></s:datetimepicker>-----日期輸入框
<s:debug></s:debug>-----顯示錯誤信息
<s:div></s:div>-----表示一個塊,類似於html的<div></div>
<s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----雙下拉框

E:
<s:if test=""></s:if>
<s:elseif test=""></s:elseif>
<s:else></s:else>-----這3個標籤一起使用,表示條件判斷

F:
<s:fielderror></s:fielderror>-----顯示文件錯誤信息
<s:file></s:file>-----文件上傳
<s:form action=""></s:form>-----獲取相應form的值

G:
<s:generator separator="" val=""></s:generator>----和<s:iterator>標籤一起使用

H:
<s:head/>-----在<head></head>裏使用,表示頭文件結束
<s:hidden></s:hidden>-----隱藏值

I:
<s:i18n name=""></s:i18n>-----加載資源包到值堆棧
<s:include value=""></s:include>-----包含一個輸出,servlet或jsp頁面
<s:inputtransferselect list=""></s:inputtransferselect>-----獲取form的一個輸入
<s:iterator></s:iterator>-----用於遍歷集合

L:
<s:label></s:label>-----只讀的標籤

M:
<s:merge></s:merge>-----合併遍歷集合出來的值

O:
<s:optgroup></s:optgroup>-----獲取標籤組
<s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右選擇框

P:
<s:param></s:param>-----爲其他標籤提供參數
<s:password></s:password>-----密碼輸入框
<s:property/>-----得到'value'的屬性
<s:push value=""></s:push>-----value的值push到棧中,從而使property標籤的能夠獲取value的屬性

R:

<s:radio list=""></s:radio>-----單選按鈕
<s:reset></s:reset>-----重置按鈕

S:
<s:select list=""></s:select>-----單選框
<s:set name=""></s:set>-----賦予變量一個特定範圍內的值
<s:sort comparator=""></s:sort>-----通過屬性給list分類
<s:submit></s:submit>-----提交按鈕
<s:subset></s:subset>-----爲遍歷集合輸出子集

T:
<s:tabbedPanel id=""></s:tabbedPanel>-----表格框
<s:table></s:table>-----表格
<s:text name=""></s:text>-----I18n文本信息
<s:textarea></s:textarea>-----文本域輸入框
<s:textfield></s:textfield>-----文本輸入框
<s:token></s:token>-----攔截器
<s:tree></s:tree>-----樹
<s:treenode label=""></s:treenode>-----樹的結構

U:
<s:updownselect list=""></s:updownselect>-----多選擇框
<s:url></s:url>-----創建url

 

 

轉自:http://caizhongda.javaeye.com/blog/507450

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