1. 程式人生 > >logic標籤庫

logic標籤庫

logic標籤庫

<logic:equal>變數等於指定的常量
<logic:notEqual>變數不等於指定的常量                                                   
<logic:lessThan>變數小於指定的常量
<logic:lessEqual>變數小於或者等於指定的常量
<logic:greaterThan>變數大於指定的常量
<logic:greaterEqual>變數大於或等於指定的常量
<logic:match>變數包含指定的常量字串
<logic:match name="authorName" scope="request" value="Linda">
 <bean:write name="authorName">
</logic:match>
<logic:notMatch>變數不包含指定的常量字串
<logic:empty>判斷指定的變數是否為null,或者為空字串""
<logic:notEmpty>判斷指定的變數是否不為null,並且不為空字串""
<logic:present>判斷指定的安全形色,使用者,Cookie,HTTP請求Header或JavaBean是否存在指定的物件
<logic:notPresent>判斷指定的安全形色,使用者,Cookie,HTTP請求Header或JavaBean是否不存在指定的物件                                                                         
<logic:messagesPresent>判斷指定的訊息是否存在
<logic:messagesNotPresent>判斷指定的訊息是否不存在

進行迴圈遍歷Logic標籤是Logic標籤庫中最複雜的標籤,也是用途最廣泛的標籤,
它能夠在一個迴圈中遍歷陣列,Collection,Enumeration,Irerator或者Map中的所有元素
=================
遍歷集合
=================
 <logic:notEmpty property="userinfo" name="userInfoForm">
  <logic:iterate id="result" property="userinfo" name="userInfoForm" indexId="indexId">
   <html:multibox property="checkedID" name="userInfoForm" >
    <bean:write name="result" property="intid"/>
  </html:multibox>
  </<logic:iterate>
 </logic:notEmpty>
======================
遍歷Map
======================
 HashMap map=new HashMap();
 map.put("member_id","001");  
 map.put("a_id","1001");
 request.setAttribute("map",map);
  <logic:iterate id="result"  name="map" indexId="ind">
   <bean:write name="ind" />
   <bean:write name="result" property="key" />
   <bean:write name="result" property="value" />
  </logic:iterate>

如果HashMap中每個元素的value是集合物件,則可以採用巢狀的<logic:interate>標籤
遍歷集合中的所有物件
  HashMap map=new HashMap();
  String [] a={"1","2"};
  String [] b={"3";"4"};
  map.put("a_id",a);
  map.put("b_id",b);
  <logic:iterate id="result"  name="map" indexId="ind">
   <bean:write name="ind" />
   <bean:write name="result" property="key" />
    <logic:iterate id="m_result"  name="result" property="value"
     length="2" offset="1" >
     <bean:write name="m_result" />
    </logic:iterate>
  </logic:iterate>
=====================
name屬性指定需要進行遍歷的集合物件,它每次從集合中檢索出一個元素,然後存放在page範圍內,
並以id屬性指定這個字串來命名這個元素,最好是在裡面巢狀一個<bean:write>標籤,把剛剛遍歷的
第一個id指定的字串輸出,然後在迴圈在輸出.length屬性需要遍歷的元素的數目,如果沒有設定length屬性,
就遍歷集合中的所有元素.offset屬性指定開始遍歷的其實位置,預設值是0.indexId屬性定義一個代表當前被
遍歷元素的系列號,這個變數存放在page範圍內,可以被<bean:write>標籤訪問輸出輸出的是int的數字.
例如1.2.3.4等.可以使用者輸出輸出的元素的系列號

===================
最後研究一下進行請求轉發和重定向的Logic標籤
<logic:forward>標籤用於請求轉發,
它的name屬性指定轉發的目標,與Struts配置檔案中的<global-forwards>元素和的子元素<forward>元素匹配.
簡單的說就是<logic:forward>標籤的name屬性定義的值,要去找到<golbal-forwards>子元素<forward>元素
的匹配的name屬性,然後通過path指定的路徑進行轉發.
<global-forwards>
 <forward name="index" path="/index.jsp">
 .......
</global-forwards>
<logic:forward name="index">
重定向用<logic:redierct>標籤它的forward,href和page屬性指定重定向的目標,這幾個屬性和<html:link>標籤的
屬性用法十分相似.