Struts2標籤庫

1、 
寫jsp頁面的時候,在struts2中,用的是s標記,先引入標記: 
<%@ taglib prefix="s" uri="/struts-tags"%> 
2、 
struts2的標籤和1是徹底不一樣的。 
struts2的標籤分爲兩大類:非UI標誌和UI標誌 struts1 將標誌庫按功能分紅HTML、Tiles、Logic和Bean等幾部分 
下面就介紹strut2的具體標籤: 
一、UI 
UI 標誌又能夠分爲表單UI和非表單UI兩部分。表單UI部分基本與Struts 1.x相同,都是對HTML表單元素的包裝。不過,Struts 2.0加了幾個咱們常常在項目中用到的控件如:datepicker、doubleselect、timepicker、 optiontransferselect等。由於這些標誌不少都常常用到,並且參數也不少,要在一篇文章詳細說明並不是易事。 
下面主要是ui標籤的一些用法 
form: 
<s:form action="exampleSubmit" method="post" enctype="multipart/form-data"> 
<s:submit   /> 
     <s:reset   /> 

</s:form>能夠上傳文件的form。 
textfield: 
<s:textfield 
             label="姓名:" 
             name="name" 
             tooltip="Enter your Name here" /> 
datepicker: 
<s:datepicker 
             tooltip="Select Your Birthday" 
             label="生日" 
             name="birthday" /> 
textarea: 
<s:textarea 
             tooltip="Enter your remart" 
             label="備註" 
             name="remart" 
             cols="20" 
             rows="3"/> 
select: 
<s:select 
             tooltip="Choose user_type" 
             label="" 
             list="#{'free':'免費','vip':'收費'}" value="#{'free':'免費'}"   
           name="bean.user_type" 
             emptyOption="true" 
             headerKey="None" 
             headerValue="None"/> 
<s:select 
             tooltip="Choose user_type" 
             label="" 
             list="#{'free':'免費','vip':'收費'}" value="#{'free':'免費'}"   
           name="bean.user_type" 
             emptyOption="true" 
             headerKey="None" 
             headerValue="None"/> 
<s:select 
list="venderList" 
listKey="id" 
listValue="name" 
value="%{profile.companyName}" 
name="companyName" cssClass="sel_style_w_180"/>   
挺好用的 
checkboxlist: 
<s:checkboxlist 
             tooltip="Choose your Friends" 
             label="朋友" 
             list="{'Patrick', 'Jason', 'Jay', 'Toby', 'Rene'}" 
             name="friends"/> 
checkbox: 
   <s:checkbox 
             tooltip="Confirmed that your are Over 18" 
             label="年齡" 
             name="legalAge" 
            value="18"/> 
file: 
   <s:file 
             tooltip="Upload Your Picture" 
             label="Picture" 
             name="picture" /> 
a: 
<s:a href="getP.jsp">超連接提交</s:a> 
date : 
<s:date name="ad_end_time" format="yyyy-MM-dd"/> 
二、非UI 
if、elseif和else 描述: 
執行基本的條件流轉。 
參數: 
名稱必需默認類型描述備註test是Boolean決定標誌裏內容是否顯示的表達式else標誌沒有這個參數id否Object/String用來標識元素的id。在UI和表單中爲HTML的id屬性 例子: 
<%@ page c %> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
     <head> 
         <title>Condition Flow</title> 
     </head> 
     <body> 
         <h3>Condition Flow</h3>             
         <!-- 
             這裏有點小技巧: 
             原本能夠用#parameters.name[0]來得到,請求中name的值。可是,在我實現include例子時, 
             不管我用param標誌給name賦任何值,#parameters裏面不會含有任何值,因此#parameters.name也爲空值。 
             
             其緣由爲: 
             當使用include標誌時,被包含的頁面(included)裏#parameters拿到的是包含頁面裏的請求參數。 
             
             所以,這裏必須手工調用request.getParameter("name")。 
         --> 
     <s:iterator value="linkList" status="bean"> 
   <tr> 
     <td class="data_tab_tdcl"> 
     <s:property value="#bean.Index+1" />     </td> 
     <td class="data_tab_tdcl"><s:property value="link_title" /></td> 
     <td class="data_tab_tdcl"><s:property value="link_url" /></td> 
     <td class="data_tab_tdcl"> 
     <s:if test="link_type == 1"> 
                   文字 
                 </s:if> 
                 <s:elseif test="link_type == 2"> 
                   圖片 
                 </s:elseif> 
                 <s:else> 
                 ----- 
               </s:else>    
     </td> 

    
     </body> 
</html> 
例1 condition.jsp 
iterator 描述: 
用於遍歷集合(java.util.Collection)或枚舉值(java.util.Iterator)。 
參數: 
名稱必需默認類型描述status否String若是設置此參數,一個IteratorStatus的實例將會壓入每一個遍歷的堆棧value否 Object/String要遍歷的可枚舉的(iteratable)數據源,或者將放入新列表(List)的對象id否Object/String用來標識元素的id。在UI和表單中爲HTML的id屬性 例子: 
<%@ page c %> 
<%@ page import="java.util.List" %> 
<%@ page import="java.util.ArrayList" %> 
<%@ taglib prefix="s" uri="/struts-tags" %> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<% 
     List list = new ArrayList(); 
     list.add("Max"); 
     list.add("Scott"); 
     list.add("Jeffry"); 
     list.add("Joe"); 
     list.add("Kelvin"); 
     request.setAttribute("names", list); 
%> 
<html> 
     <head> 
         <title>Iterator</title> 
     </head> 
     <body> 
         <h3>Names: </h3> 
         <!-- 
             一、此處的空property元素用於得到當前iterator的值 
             二、 status被設成stuts,在iterator的裏面就能夠經過#stuts取得IteratorStatus的對象。IteratorStatus 類包含當前序號信息,如是否第一個或最後一個,是否爲奇數序號。這些信息在咱們作格式化的時候,顯得很是有用。 
         --> 
         <ol> 
             <s:iterator value="#request.names" status="stuts">                 
                 <s:if test="#stuts.odd == true"> 
                     <li>White <s:property /></li> 
                 </s:if> 
                 <s:else> 
                     <li style="<s:property /></li> 
                 </s:else> 
             </s:iterator> 
         </ol> 
     </body> 
</html> 

例2 iterator.jsp 
i18n 描述: 
加載資源包到值堆棧。它能夠容許text標誌訪問任何資源包的信息,而不僅當前action相關聯的資源包。 
參數: 
名稱必需默認類型描述value是Object/String資源包的類路徑(如com.xxxx.resources.AppMsg)id否Object/String用來標識元素的id。在UI和表單中爲HTML的id屬性 例子: 
HelloWorld=Hello Wrold! 
例3 classes\ ApplicationMessages.properties 

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
     <head> 
         <title>Internationization</title> 
     </head> 
     <body> 
         <h3> 
             <s:i18n name="ApplicationMessages"> 
                 <s:text name="HelloWorld" /> 
             </s:i18n> 
         </h3> 
     </body> 
</html> 
例3 i18n.jsp 
include 描述: 
包含一個servlet的輸出(servlet或jsp的頁面)。 
參數: 
名稱必需默認類型描述value是String要包含的jsp或servletid否Object/String用來標識元素的id。在UI和表單中爲HTML的id屬性 例子: 
<%@ page c %> 
<%@ taglib prefix="s" uri="/struts-tags" %> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
     <head> 
         <title>Iterator</title> 
     </head> 
     <body> 
         <h3>Interator Page</h3> 
         <s:include value="/condition.jsp"> 
             <s:param name="name">Max</s:param> 
         </s:include> 
         <h3>i18n</h3> 
         <s:include value="/i18n.jsp" /> 
     </body> 
</html> 
例4 include.jsp 
param 描述: 
爲其餘標籤提供參數,好比include標籤和bean標籤. 參數的name屬性是可選的,若是提供,會調用Component的方法addParameter(String, Object), 若是不提供,則外層嵌套標籤必須實現UnnamedParametric接口(如TextTag)。 

value的提供有兩種方式,經過value屬性或者標籤中間的text,不一樣之處咱們看一下例子: 
<param name="color">blue</param><!-- (A) --> 
<param name="color" value="blue"/><!-- (B) --> 
(A)參數值會以String的格式放入statck. 
(B)該值會以java.lang.Object的格式放入statck. 
參數: 
名稱必需默認類型描述name否String參數名value否Stringvalue表達式id否Object/String用來標識元素的id。在UI和表單中爲HTML的id屬性 例子: 
請參考例4。 
set 描述: 
set標籤賦予變量一個特定範圍內的值。當但願給一個變量賦一個複雜的表達式,每次訪問該變量而不是複雜的表達式時用到。其在兩種狀況下很是有用: 複雜的表達式很耗時 (性能提高) 或者很難理解 (代碼可讀性提升)。 
參數: 
名稱必需默認類型描述name是String變量名字scope否String變量做用域,能夠爲application, session, request, page, 或action.value否Object/String將會賦給變量的值id否Object/String用來標識元素的id。在UI和表單中爲 HTML的id屬性 例子: 
請參考例1。 
text 描述: 
支持國際化信息的標籤。國際化信息必須放在一個和當前 action同名的resource bundle中,若是沒有找到相應message,tag body將被看成默認message,若是沒有tag body,message的name會被做爲默認message。 
參數: 
名稱必需默認類型描述name是String資源屬性的名字id否Object/String用來標識元素的id。在UI和表單中爲HTML的id屬性 例子: 
請參考例3。 
url 描述: 
該標籤用於建立url,能夠經過"param"標籤提供request參數。 

當includeParams的值時'all'或者'get', param標籤中定義的參數將有優先權,也就是說其會覆蓋其餘同名參數的值。 參數: 略 
例子: 
<%@ page c %> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
     <head> 
         <title>URL</title> 
     </head> 
     <body> 
         <h3>URL</h3>             
         <a href='<s:url value="/i18n.jsp" />'>i18n</a> 

         <s:url id="url" value="/condition.jsp"> 
             <s:param name="name">Max</s:param> 
         </s:url>         
         <s:a href="%{url}">if\elseif\else</s:a> 
     </body> 
</html> 
例5 url.jsp 
property 描述: 
獲得'value'的屬性,若是value沒提供,默認爲堆棧頂端的元素。 
參數: 
名稱必需默認類型描述default否String若是屬性是null則顯示的default值escape否trueBooelean是否escape HTMLvalue否棧頂Object要顯示的值id否Object/String用來標識元素的id。在UI和表單中爲HTML的id屬性 例子: 
請參考例2。css

相關文章
相關標籤/搜索