隨筆 - 71  文章 - 15  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          因為口渴,上帝創造了水;
          因為黑暗,上帝創造了火;
          因為我需要朋友,所以上帝讓你來到我身邊
          Click for Shaanxi xi'an, Shaanxi Forecast
          ╱◥█◣
            |田|田|
          ╬╬╬╬╬╬╬╬╬╬╬
          If only I have such a house!
          〖總在爬山 所以艱辛〗
          Email:myesjoy@yahoo.com.cn
          NickName:yesjoy
          MSN:myesjoy@hotmail.com
          QQ:150230516

          〖總在尋夢 所以苦痛〗

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          Hibernate在線

          Java友情

          Java認證

          linux經典

          OA系統

          Spring在線

          Structs在線

          專家專欄

          企業信息化

          大型設備共享系統

          工作流

          工作流產品

          網上購書

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          Struts的Logic標簽可以根據特定的邏輯條件來判斷網頁的內容,或者循環遍歷集合元素,它和HTML,Bean標簽是Struts應用種最常用的三個標簽.它的功能主要是比較運算,進行字符串的匹配,判斷指定的內容是否存在,循環遍歷集合,進行請求轉發和重定向,下面具體的說明標簽的用途:

          <logic:equal>變量等于指定的常量

          <logic:notEqual>變量不等于指定的常量

          <logic:lessThan>變量小于指定的常量

          <logic:lessEqual>變量小于或者等于指定的常量

          <logic:geraterThan>變量大于指定的常量

          <logic:geraterEqual>變量大于或等于指定的常量

          以上這些標簽都很類似,有共同的屬性,cookie屬性指定cookie屬性的值,然后用value設置的常量進行比較.header屬性設置header請求頭的值,也是通過value屬性設置的值進行比較.parameter屬性設置一個請求參數,然后也是通過value屬性設置的值進行比較.name屬性設置一個變量,然后用value比較.如果同時設置了name和property屬性,此時name屬性指定已經存在的JavaBean,property屬性指定Bean的屬性.這個標簽感覺十分簡單,用法也十分單一,下面研究一下進行字符串匹配的標簽和判斷特定內容的標簽.

          <logic:match>標簽是判斷變量種是否包含常量字符串的,<logic:netMatch>也判斷是否不包含字符串的,用name屬性定義一個字符串變量,然后用value屬性的值去判斷變量是否包含這個字符串或者是不包含這個字符串,判斷成功返回true.

          <logic:empty>和<logic:netEmpty>標簽可以判斷指定的變量是否為空的字符串,可以通過name屬性來判斷一個字符串是否為null.例如是請求參數的字符串.

          <logic:present>和<logic:notPresent>標簽可以判斷指定的對象是否為空,這個標簽的屬性很多.cookie屬性判斷Cookie是否存在.Header屬性判斷HTPP請求頭是否存在.role屬性是判斷當前的權限的用戶是否是指定的安全角色.user屬性是判斷當前通過權限驗證的用戶是否擁有指定的用戶名.parameter屬性是判斷請求的參數是否存在.name屬性是用來判斷指定的Bean是否存在.同時設置name和property屬性就是判斷Bean種的具體屬性是否存在了.

          <logic:messagesPresent>和<logic:messagesNotPresent>標簽是用來判斷是否在request范圍內的特定的ActionMessages或者是子類ActionErrors對象.name屬性是用來檢索ActionMessages對象的key,property指定從ActionMessages集合對象中檢索某條消息key也就是具體的ActionMessage對象.

          進行循環遍歷Logic標簽是Logic標簽庫中最復雜的標簽,也是用途最廣泛的標簽,它能夠在一個循環中遍歷數組,Collection,Enumeration,Irerator或者Map中的所有元素

          1)              遍歷集合的標簽<logic:iterate>的name屬性指定需要進行遍歷的集合對象,它每次從集合中檢索出一個元素,然后存放在page范圍內,并以id屬性指定這個字符串來命名這個元素,最好是在里面嵌套一個<bean:write>標簽,把剛剛遍歷的第一個id指定的字符串輸出,然后在循環在輸出.length屬性需要遍歷的元素的數目,如果沒有設置length屬性,就遍歷集合中的所有元素.offset屬性指定開始遍歷的其實位置,默認值是0.indexId屬性定義一個代表當前被遍歷元素的系列號,這個變量存放在page范圍內,可以被<bean:write>標簽訪問輸出輸出的是int的數字.例如1.2.3.4等.可以用戶輸出輸出的元素的系列號.

          2)              遍歷Map是通過<logic:iterate>標簽,name屬性指定一個HashMap,存放在request范圍,然后賦給id指定的變量,indexId可以指定索引編號,然后通過<bean:write>標簽輸出出來.在HashMap的每一個元素都是一個集合對象,所以可以嵌套使用.就是說<logic:inerate>這個標簽既可以把Collection的元素弄出來負給一個變量也可以弄Map的.所以說它的功能強大.還有一個collection屬性可以設置一個表達式,這個表達式返回的結果可以作為,<logic:inerate>標簽輸出的集合或者Map.這個屬性類似name屬性.

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

          關于標簽的部分我就說到這里,因為我個人覺得在Struts中最常用的無非也就是這三個標簽庫了.我以前還寫過一個Struts的分頁應用,過些天繼續發布到我的Blog上. (網友們的支持,是我繼續寫技術文章的動力!)

          posted on 2007-04-14 20:56 ★yesjoy★ 閱讀(207) 評論(0)  編輯  收藏 所屬分類: Structs學習
          主站蜘蛛池模板: 五寨县| 临江市| 石家庄市| 虎林市| 贺兰县| 马鞍山市| 和静县| 静乐县| 庆安县| 瑞安市| 定远县| 会理县| 垫江县| 武功县| 雷波县| 锡林浩特市| 达尔| 大兴区| 临沧市| 大新县| 贵溪市| 云林县| 达尔| 河曲县| 盐亭县| 长兴县| 靖安县| 汝阳县| 阿克苏市| 平度市| 新绛县| 石门县| 岢岚县| 老河口市| 浦县| 靖远县| 探索| 无为县| 巧家县| 兴仁县| 延安市|