Struts2標簽詳解

xyang81 14年前發布 | 5K 次閱讀 CSS

a標簽創建一個HTML超鏈接,等價于HTML 的<a  href=""....

示范代碼:

<s:a href="login.action">登陸</s:a>

更多 a 信息

 action 

使用action標簽 可以允許在JSP頁面中直接調用Action。

范例如下:

<s: action   name="tag2"  executeResult="false" />

更多 action 信息

 actionerror 

這個標簽負責輸出錯誤信息到客戶端。
示范代碼:

Action代碼如下:
public String execute()
{
   addActionError("第一條錯誤消息!"); 
   addActionError("第二條錯誤消息!"); 

   return SUCCESS;
}....
JSP中:<s:actionerror/>

更 多 actionerror 信息

 actionmessage 
這個標簽負責輸出提示信息到客戶端,例子如下:

Action代碼如下:
public String execute()
{
   addActionMessage("第一條普通消息!"); 
   addActionMessage("第二條普通消息!"); 
   return SUCCESS;
}
JSP:<s:actionmessage />

更 多 actionmessage 信息

 append 

用來做iterator標簽的輔助,將不同iterator中的內容合在一個iterator中。
例子:
<s:append id="myAppendIterator">
     <s:param value="%{myList1}" />
     <s:param value="%{myList2}" />
     <s:param value="%{myList3}" />
</s:append>
<s:iterator value="%{#myAppendIterator}">
     <s:property />
</s:iterator>

更多 append 信息

 bean 

bean標簽 用于創建一個JavaBean的實例。

示范樣例:

<s:bean   name="lee.Person"  id=“p”>
<!--使用Param標簽為lee。 Person類的實例傳入參數-->
<s:param   name="name"  value="'yeeku'"/>
<s:param   name="age"   value="29"/>
</s:bean>

更多 bean 信息

 checkbox 

checkbox標簽輸出一個HTML復選框,等價于HTML代 碼:<input type="checkbox" .../>。

示范代碼:

<s:checkbox label="性別" name="user.sex" value="true" fieldValue="dddd"/> 

更多 checkbox 信息

 checkboxlist 

標簽輸出一個復選框。

示范代碼:
<s:form>
    <s:checkboxlist name="interest" list="{'足球','籃球','排球','游泳'}" label="興趣愛好"/>
</s:form>

更 多 checkboxlist 信息

 combobox 

combobox標簽生成一個單行文本框和下拉列表框的結合。

示范代碼:
<s:combobox label="請選擇您喜歡的圖書" theme="css_xhtml" labelposition="top"
        list="{'Spring2.0' , 'J2EE' , 'Ajax'}"
        size="20" maxlength="20" name="book"/>

更多 combobox 信息

 conponent

conponent標簽用于使用自定義標簽。因為使用自定義組件還是基于主題,模板管理的,因此在使用component標簽,常常需要指定如下3 個屬性:
theme:自定義組件所使用的主題,默認使用xhtml主題。
templateDir:指定自定義組件的主題目錄,默認使用系 統的主題目錄,即template目錄。
template:指定自定義組件所使用的模板。

示范代碼:
<s:component template="mytemplate.jsp">
<s:param name="list" value="{'Spring2.0' , 'J2EE' , 'Ajax'}" />
</s:component>

更多 conponent 信息

 date 

date標簽 用于格式化輸入一個日期,還可以計算指定日期和當前時刻之間的時差。
示范代碼:

<s:date  name="#attr.now"   format="dd/MM/yyyy"  nice=“true”/>

更多 date 信息

 datetimepicker 

datetimepicker標簽就是生成一個有日期控件的文本輸入框。它有一個前提就是要在<head></head> 內加一個"<s:head theme="ajax" />",然后可以在form內加上該標簽。 

示范代碼:

<s:datetimepicker name="user.birthday" label="出生日期" value="% {'2008-9-20'}"/>

更 多 datetimepicker 信息

 debug 

debug 標簽主要用于輔助測試,它在頁面上生成一個超鏈接,通過該鏈接可以查看ValueStack和Stack Context 中的所有值信息。

使用debug標簽只有一個id屬性,這個屬性僅僅是該元素一個引用id。

在頁面上增加<s:debug/>標簽,通過debug標簽,可以看 的系統中ValueStack離得全部信息,并可以看到Stack Context中的屬性。

<s:debug></s:debug>
//直接在jsp頁面上面添加這樣的標簽,就可以生產一個查看debug信息的鏈接

更多 debug 信息

示范代碼:
 div 
div是struts2 ajax中最基礎的標簽,其他的標簽均和div有關系。div的最大的用途就是可以異步的更新div中的內容。這里寫一些div基本的應用,其他的等寫別 的標簽的時候再寫。
示范代碼:
<s:div href="%{url}">Initial Content</sx:div>
<!--最簡單的例子,從指定的url獲取信息更新自己的內容-->

更多 div 信息

 doubleselect 
doubleselect標簽輸出關聯的兩個HTML列表框, 產生聯動效果。
<s:doubleselect
        label="請選擇所在省市" name="province" list="provinces" listKey="id"
        listValue="name" doubleList="cities"
        doubleListKey="id" doubleListValue="name"
        doubleName="city" headerKey="-1"
        headerValue="--- 請選擇 ---"
        emptyOption="true" />

更 多 doubleselect 信息

 else 

else標簽用來控制基本的條件處理流程,通常和if、elseif標簽連用。

例子
<s:if test="%{false}">
    <div>Will Not Be Executed


</s:if>
<s:elseif test="%{true}">
    <div>Will Be Executed
</s:elseif>
<s:else>
    <div>Will Not Be Executed
</s:else> 

更多 else 信息

 elseif 

elseif標簽用來控制基本的條件處理流程,通常和if標簽連用。

例子

<s:if test="%{false}">

...</s:if>

<s:elseif test="%{true}">

    <div>Will Be Executed

</s:elseif>

<s:else>

...</s:else>

更多 elseif 信息

 fielderror 

fielderror標簽輸出action的fieldErrors屬性保存的字段錯誤,fieldErrors是一個map類型的屬性。

示范代碼:

<s:fielderror/>

更多 fielderror 信 息

 file 
 

file標簽輸出一個HTML文件選擇框,等價于html代碼:<input type="file" .../>。

示范代碼:
<s:file name="uploadfile" accept="text/*" />
<s:file name="uploadfile" accept="text/html,text/plain" />

更多 file 信息

 form 
 
form標 簽輸出一個HTML from

例子:

<s:form action="exampleSubmit" method="post" enctype="multipart/form-data"> 
<s:submit   /> 
     <s:reset   /> 
</s:form>

可以上傳文件的form。

 

更多 form 信息

 generator 
 

使用generator標簽可以將指定字符串按指定分隔符分成多個子串,臨時生成的多個子串可以使用iterator標簽來迭代輸出。可以這樣理 解:generator將一個字符串轉化成一個集合。在該標簽的標簽體內,整個臨時生成的集合將位于ValueStack的頂端,蛋一旦該標簽結束,該集 合將被移出ValueStack。

更多 generator 信息

 head 
 

head 標簽主要用于成生HTML主要頁面的HEAD部分。國為有些主題需要包含特定的CSS和javascript代碼,而該標簽則用于生成對這此CSS和 javaScript代碼的引用。

示范代碼:

<head>
<title>page 1</title>
<s:head/>
</head>

更多 head 信息

 hidden 
 

hidden標簽輸出一個HTML隱藏表單元素,等價于HTML代碼:<input type="hidden" .../>。

在xhtml主題下,hidden標簽與其他的標簽不一樣,hidden標簽并不輸出表行。xhtml主題直接從simple主題繼承了

hidden.ftl模板。

示范代碼:

<s:hidden name="id" value="s"/>

更多 hidden 信息

 i18n 
 

該標簽用于加載資源包到值堆棧。它可以允許text標志訪問任何資源包的信息,而不只當前action相關聯的資源包。

示范代碼:

<s:i18n name="ApplicationMessages"> 
     <s:text name="HelloWorld" /> 
</s:i18n> 

更多 i18n 信息

 if 
 

If標簽用來控制基本的條件處理流程,通常和else標簽或者elseif標簽連用。

例子:

<s:if test="%{false}">

    <div>Will Not Be Executed

</s:if>

更多 if 信息

 include 
 

include標簽 用于將一個JSP頁面,或者一個Servlet包含到本頁面中。

示范代碼:

<h2>使用s:include標簽來包含目標頁面</h2>

<s:include   value="include-file.jsp"/>

<!--使用include標簽來包含其他頁面,并且傳入參數-->

<s:include   value="include-file.jsp">

    <s:param  name="author"  value="'yeeku'" />

</s:include>

更多 include 信息

 inputtransferselect 
 
獲取form的一個輸入

更 多 inputtransferselect 信息

 iterator 
 

迭代處理一個java.util.Connection或者java.util.Iterator對象

例子:

<s:iterator value="users" status="userStatus">
 <s:property value="fullName" />
 <s:if test="!#userStatus.last">,</s:if>
</s:iterator>

 

更多 iterator 信息

 label 
 

xhtml主題下的label 標簽輸出兩個 HTML的label標簽(simple主題下的label標簽只輸出一個HTML label標簽)。分別位于一行的兩列,左列的label標簽器提示作用,右列的label標簽用于顯示只讀的action屬性數據。

示范代碼:

<s:label label="用戶名" name="user.username"/>

更多 label 信息

 merge 
 

合并遍歷集合出來的值,與<s:append>標簽用法相似。

例子:

<s:merge id="list">
    <s:param value="#request.list1"/>
    <s:param value="#request.list2"/>
    <s:param value="#request.list3"/>
    <s:param value="#request.list4"/>
   </s:merge>
   <s:iterator value="%{list}">
        <s:property/>
 
   </s:iterator>

更多 merge 信息

 optgroup 
 

optgroup標簽用于生成一個下拉列表框的選項組,因此,該標簽必須放在<s:select>標簽中使用,一個下拉列表框中可以包 含多個選項組,因此可以在一個<s:select>標簽中使用多個<s:optgroup>標簽。

<s:select label="選擇您喜歡的圖書" name="book" list="#{'Spring2.0':'李剛','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>

更多 optgroup 信息

 optiontransferselect 
 
optiontransferselect標簽創建一個選項轉 移列表組建,它由兩個<select>標簽以及它們之間的用于將選項在兩個<select>之間相互移動的按鈕組成。表單提交 時,將提交兩個列表框中選中的選項。
示范代碼:
<s:optiontransferselect
    label="最喜愛的圖書"
        name="javaBook"
        list="{'《Java Web開發詳解》', '《Struts 2深入詳解》', '《Java快速入門》'}"
        doubleName="cBook"
        doubleList="{'《VC++深入詳解》', '《C++ Primer》', '《C++程序設計語言》'}"/>

更 多 optiontransferselect 信息

 param 
 

param標簽 主要用于為其他標簽提供參數

用法:
<param  name="color"  value="blue" />
這里color參數的值 是,blue對象的值----如果blue對象不存在,則color為null。

更多 param 信息

 password 
 

<s:password>標簽類同于HTML的<input type=”password” …>,其name和label類同于<s:textfield>

例子:

<s:password name="password" label="密碼"/> 

更多 password 信息

 property  
 
property標簽用于輸出值棧中的對象的屬性值,使用 value屬性來指定要輸出的對象屬性,如果沒有指定value屬性,那么默認輸出棧頂對象。

例子:

<s:property value="username" default="游客"/>

取出棧頂對象(通常是action)的username 屬性并輸出,如果沒有找到username屬性,那么輸出“游客”。

更多 property  信息

 push 
 

push標簽用于將某個值放到ValueStack的棧頂,可以跟簡單的訪問該值。
示范樣例:
<s:bean  name="lee.Person"  id="p">
   <s:param   name="age"  value="29"/>
</s:bean>
<s:push   value="#p">
    <s:property   value="name"/>
    <s:propery   value="age"/>
</s:push>

更多 push 信息

 radio  
 

radio標簽的用法與checkboxlist的用法幾乎完全相同,一樣可以指定label, list, listKey, listValue等屬性。

示范代碼:
<s:radio name="c" label="請選擇您喜歡的圖書" labelposition="top"
list="#bs.books"
listKey="author"
listValue="name"/>

更多 radio  信息

 reset 
 
reset標簽輸出一個重置按鈕。

示范代碼:
<s:reset value="重置"></s:reset>

<s:reset type="button" label="重置"></s:reset>

更多 reset 信息

 select 
 

s:select 標簽輸出一個下拉列表框,相當于HTML代碼中的<select/>

示范代碼:
<s:form>
    <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"/>
</s:form>

更多 select 信息

 set 
 

set標簽是將某個值放到指定范圍內, 比如說 student.teacher.parent.age 每次訪問這個屬性不僅性能低,而且代碼可讀性很差,為了解決這個問題,可以將這個值設置為一個新值,并且放入指定范圍內。
使用示范:
<s:set value="#p" name="test"/>
<s:property value="#test.name"/>

<s:property value="#test.age"/>

 

 

 sort 
 

對一個可以迭代的對象進行排序操作。

<s:sort comparator="myComparator" source="myList">
     <s:iterator>
     <!-- do something with each sorted elements -->
     <s:property value="..." />
     </s:iterator>
</s:sort>

更多 sort 信息

 submit 
 
Submit標簽輸出一個按鈕,submit標簽和form標簽使用可以提供異步表單提交功能。Submit標簽可 以輸出以下三種類型的提交按鈕:
Input 等價于 HTML代碼<input type=submit>
Image 等價于 HTML代碼 <input type="image">
Button<button type="submit"></button>

示范代碼
<s:submit value="登陸"></s:submit>

更多 submit 信息

 subset 
 

遞歸iterator的一部分。
例子:

<s:subset source="myList">

      <s:iterator>

         <s:property />

      </s:iterator>

</s:subset>

 

更多 subset 信息

 tabbedPanel 
 
<s:tabbedPanel>標簽,用來在 HTML頁面中生成類似于Windows程序的Tab頁,從而可以在有限的空間中放置更多的內容。tabbedPanel標簽生成的Tab頁的內容可以是 靜態的,也可以是動態的。
示范代碼:
<s:tabbedPanel id="tp1" closeButton="pane" theme="ajax" doLayout="true" selectedTab="second"     labelposition="left">
      <s:div id="first" label="第一個div" theme="ajax">
       靜態的DIV
      </s:div>
      <s:div name="second" label="第二個div" theme="ajax" href="%{T}" updateFreq="6000" delay="3000">
       3:每六秒鐘刷新一次,但有三秒延遲
      </s:div>
</s:tabbedPanel>

更 多 tabbedPanel 信息

 text 
 
用于輸出國際化消息,和i18n結合使用。

示范代 碼:

<s:i18n name="ApplicationMessages"> 
     <s:text name="HelloWorld" /> 
</s:i18n> 

更多 text 信息

 textarea 
 
Textarea標簽輸出一個HTML多行文本輸入控件,等價于 HTML代碼:<textarea />

示范代碼:
<s:textarea name="personal" cols="10" rows="5" label="個人簡歷"></s:textarea>

更多 textarea 信息

 textfield 
 

Textfield標 簽輸出一個HTML單行文本輸入控件,等價于HTML代 碼<input type="text">


示范代碼:

<s:form action="register" method="post">
    <s:textfield name="username" label="用戶名"></s:textfield>
</s:form>

 

更多 textfield 信息

 token 
 

token標簽是用于防止多次提交的標簽。避免了刷新頁面時多次提交,如果需要該標簽起作用,則應該在Struts2的配置文件中啟用 TokenInterceptor攔截器或TokenSessionStoreInterceptor攔截器。

示范代碼:
<s:form>
<s:token/>
</s:form>

 

 

更多 token 信息

 tree 
 

tree和treenode標簽可以在頁面生成一個樹形結構,其中tree生成一 個樹形結構,treenode生成一個樹節點。
示范代碼:

<s:tree label="圖書" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
    <s:treenode theme="ajax" label="David" id="David">
     <s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
    </s:treenode>
</s:tree>

更多 tree 信息

 treenode 
 

tree和treenode標簽可以在頁面生成一個樹形結構,其中tree生成一個樹形結構,treenode生成一個樹節點。
示范代碼:

<s:tree label="圖書" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
    <s:treenode theme="ajax" label="David" id="David">
     <s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
    </s:treenode>
</s:tree>

更多 treenode 信息

 updownselect 
 
updownselect標簽創建一個帶有上下移動的按鈕的列 表框,可以通過上下移動按鈕來調整列表框的選項的位置。
示范代碼:
<s:updownselect name="a" label="請選擇您喜歡的圖書" labelposition="top"
    moveUpLabel="向上移動"
    list="{'Spring2.0寶典' , '輕量級J2EE企業應用實戰' , 'JavaScript: The Definitive Guide'}"/>

更 多 updownselect 信息

 url 
 
url標簽 用于生成一個URL地址,可以通過param向url標簽指定參數,從而指定URL發送請求參數。

示范代碼:

指定action屬性,且使用param傳入參數的形式
<s:url  action="showbook">
<s:param  name="author"  value="'yeeku'">
</s:url>

更多 url 信息

 本文由用戶 xyang81 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!