Struts2.0新標籤的用法

 一、 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>
<hr>
既不指定action屬性,也不指定value屬性,且使用param傳入參數的形式。<br>
<s:url includeParams="get"  >
    <s:param name="id" value="%{'22'}"/>
</s:url>
<hr>
同時指定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>

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: 該屬性指定集合元素中某個屬性作爲複選框的標籤。

三、 使用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>

備註:
  與<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>


備註
 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>

第二步

六、使用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>

七、使用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>

第二步

八、使用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>

備註:
   如果我們不想用它默認的圖標,我們可以添加標籤,將它默認的覆蓋掉:例如我們添加如下代碼:
     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>

十、使用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>

備註:
   錯誤原因可能是我們的模板有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>

十二、使用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>

十三、使用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>

十五、使用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屬性中。

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>

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