1. 程式人生 > >Struts2常用的標籤的用法

Struts2常用的標籤的用法

  property標籤:<br>
      1.取值:<s:property value="username"/><br>
      <!--
      property的value對應了一個object,struts2會自動的轉換成一個ognl表示式,然後取值.
                如果需要把字串當成值,就應該用如下形式。
      -->     
      2.取值為字串:<s:property value="'passwd'"/>||<s:property value="/"passwd/""/><br>
      <!--
      property是從值棧中取出對應屬性的值,當一個給定的屬性不存在值棧時,可以用default來
                設定該屬性的值。然而這個值不會被放到值棧中。
      -->
      3.設定預設值:<s:property value="admin" default="管理員"/><br>
      <!--
                 當value的值是一個html標籤時,struts2通過escape控制是將其解析成html還是字串,
                 預設為true,將其轉換為字串。
       -->
      4.設定html:<s:property value="'<hr/>'" escape="true"/><br>
                  <s:property value="'<hr/>'" escape="false"/><br>
      <hr>
      set標籤:<br>
      <!--
          set:通過set在不設定範圍的情況下,這個屬性與其對應的值會被放在request和actionContext中,
          然而在debug標籤下去找這個值的時候,在request裡看不到相關的設定值。原因是在形成debug標籤時,這個值
          還沒有放在request裡面,但實際上這個值已經放到request裡了。
       -->
      1.設定adminName(預設為request和actionContext):<s:set var="adminName" value="username"/>||<s:set id="1" name="adminPass" value="passwd"/><br>
      2.從request裡取值:<s:property value="#request.adminName"/><br>
                         <s:property value="#request.adminPass"/><br>
      3.從actionContext取值:<s:property value="#adminName"/><br>
                             <s:property value="#adminPass"/><br>
      <!--
      scope表示設定的值放在什麼範圍,其取值有如下幾種:application,session,session,page,action。
      -->
      4.設定範圍:<s:set name="myPasswd" value="passwd" scope="page"></s:set><br>
      5.從相應的範圍取值:<%=pageContext.getAttribute("myPasswd") %><br/>
      6.設定var,範圍為actionContext:<s:set name="money" value="'wo hen yu men'" var="a" ></s:set><br>
      7.通過變數取值:<s:property value="#a"/><br>
      <hr>
      <!-- bean標籤如果沒有用var,則只能在bean標籤內部使用相關屬性,出了bean標籤就用不了了。
      bean將會值棧中存在,而bean結束後,就移除值棧。如果用了var可以在actionContext中取得相關的值。
                有一點需要說明:在bean中定義成員變數時需要前2個字母為小寫,否則會出現NoSuchPropertyException.
      -->
      bean標籤:<br>
      <!-- bean標籤是new一個類的物件,通過傳入的引數給相關屬性賦值 ,其var是將new出來的物件放入actionContext
                             如果沒有var,new出來的物件將短暫的放在值棧中,bean標籤結束時,自動從值棧中移除,因此在其他地方也訪問不到
                             而放在actionContext中的內容在任何地方都能訪問到。
      -->
      設定stu值:<s:bean name="com.xie.struts2.tags.modal.Student" var="stu">
                 <s:param name="stName">wang</s:param>
                 <s:property value="stName"/>                               
             </s:bean><br>
      從stu中取值:<s:property value="#stu.stName"/><br>
     
      <hr>
      include包含標籤:<br>
      <!-- include標籤 的value值是真正的String,用%將字串轉化成ognl表示式-->
      包含靜態檔案:<s:include value="/include1.html"></s:include><br>
      包含靜態檔案:<s:set var="incPage" value="'/include1.html'"></s:set>
      <s:include value="%{#incPage}"></s:include><br>
      <!-- 通過fielderror從值棧中讀出來值進行顯示是一種固定格式,這個並不常用
                   通常我們通過ognl表示式從值棧中取值,然後進行顯示。
       -->
      讀取fielderror:<s:fielderror theme="simple"></s:fielderror><hr>
      if控制標籤if else if else:<br/>
      取出age的值:<s:property value="#parameters.age"/><br>
      <s:set var="age" value="#parameters.age[0]"></s:set>
      <s:if test="#age<10">
         He is too young.
      </s:if>
      <s:elseif test="#parameters.age[0]<20">
         He is yeah!
      </s:elseif>
      <s:else>
         Good!!!
      </s:else>
      <br><hr>
      itertor遍歷集合:<br>
      <!-- iterator標籤是遍歷容器的,通常我們能想到的容器如:conncetion,map,enumeration等
                               在遍歷map時,value的map前必須加上#
      -->
      遍歷值棧的集合:<s:iterator value="sl">
                      <s:property value="stName"/>
                 </s:iterator><br>
      遍歷指定集合:<s:iterator value="{1,2,3}">
                                                 值:<s:property/><br/>                                              
               </s:iterator><br>
      自定義變數:<s:iterator value="{'my name is xie','I want to go home','Java Is good'}" var="x">
                      <s:property value="#x.toUpperCase()"/>
                 </s:iterator><br>
     使用status:<br> <s:iterator value="{'aaa','bbb','ccc','ddd','eee','fff'}" status="status">
                  <s:property/>
                  遍歷過的元素個數:<s:property value="#status.count"/>
                  遍歷過的元素索引:<s:property value="#status.index"/>
                  當前是偶數:<s:property value="#status.even"/>
                  當前是奇數:<s:property value="#status.odd"/>
                  是第一個元素:<s:property value="#status.first"/>
                  是最後一個元素:<s:property value="#status.last"/><br/>
              </s:iterator><br> 
 訪問map:<br>
            <s:iterator value="#{1:'aa',2:'bb',3:'cc',4:'dd',5:'ee'}">
                 <s:property value="key"/>|||||||<s:property value="value"/><br/>
            </s:iterator><br>
            <s:iterator value="#{1:'aa',2:'bb',3:'cc',4:'dd',5:'ee'}" var="map">
                 <s:property value="#map.key"/>|||||||<s:property value="#map.value"/><br/>
            </s:iterator><br>   <hr>
            subset標籤:<br/>
            1. 基礎訪問:<s:subset source="sl">
                             <s:iterator>
                                <s:property value="stName"/>
                             </s:iterator>
                        </s:subset><br>
            <!-- 從低一個元素開始,訪問count個元素 -->                       
            2.用count:<s:subset source="sl" count="2">
                             <s:iterator>
                                <s:property value="stName"/>
                             </s:iterator>
                        </s:subset><br>
            3.用start:<s:subset source="sl" count="2" start="1">
                             <s:iterator>
                                <s:property value="stName"/>
                             </s:iterator>
                        </s:subset><br>
             4.使用var:<s:subset var="mysl" source="sl" >
                               <%
                                     Iterator<Student> i = (Iterator<Student>) pageContext.getAttribute("mysl");
                                            while(i.hasNext()) {
                               %>
                                <%=i.next().getStName() %>
                               <%  } %>