<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    Struts標簽中的多層logic:iterator詳解 (zhuan)

    logic:Iterator標簽(以下簡稱“該標簽”)是Struts里非常常用的一個標簽,其作用在于循環顯示給定容器對象中的值。
      
      如此常用的標簽,其源代碼當然需要拿出來研究一下,以下列舉幾條研究成果:
      
      1、該標簽內部使用Collection來表示給定的容器,所有的給定容器對象(如ArrayList,Map等)都會被其轉化成為Collection,Collection實際就是Map和List的父類。
      
      2、該標簽自己維護循環索引,不用程序員管理索引
      
      3、該標簽常見的幾個屬性如下:name、property、scope、id
      
      對應Struts給出的Api說明如下:
      
      name:包括要遍歷Collection的Jsp頁面的bean的名字(如果property沒有被定義),或者是那些通過getter方法獲得屬性的Jsp中的Bean的名字,這些getter方法返回的是Collection(如果property定義了)。
      
      property:在name命名的Jsp bean中定義的屬性的名字,通過getter方法返回一個Collection
      
      scope:指示到哪里去尋找name為名字的bean,如果沒有定義缺省為"any scope"
      
      id:如果Collection非空的話,在每次遍歷時候Collection中每個元素的名字。
      
      其中除了id每個元素均為Rt expr,這兒的rt expr的意思就是Run Time Expression。明確的說就是,如果你對一個Attribute的<rtexprvalue>指定為true,你就可以在這樣的屬性中使用<%=%>之類的東東。這個配置文件在tld中。
      
      只有id是必須要說明的。
      
      關于Api說明的說明:
      
      id只是一個臨時標識,在下面的<bean:write里面出現的name屬性要和id一致才能打印出<bean:write的property,而此property就是在iterator中的屬性。
      
      舉例說明
      
      以下代碼生成一個階梯狀表格
      
      系統 資源 操作
      
      soft3
      res3
      opt3
      soft12
      res12
      opt1211
      soft11
      res11
      opt1111
      
      在此之前傳來一個request.getAttribute("userPurview"),所以有在第一個logic中的userPurview,就是在這個request里面尋找userPurview
      
      返回的是一個list
      

      <table width="300" border="0">
      <tr><td>系統</td>
      <td>資源</td>
      <td>操作</td>
      </tr>
      <logic:iterate id="targetSys" name="userPurview" scope="request"> //這個id可以隨便起名,但是要注意下文使用的一致性
      <tr bgcolor="#cccccc"><td height="21" class="unnamed2">
      <bean:write name="targetSys" property="cn"/>    //此處name和上面id保持一致,property就是第一個list里面的元素
      </td>
      <td height="21" class="unnamed2">?</td>
      <td height="21" class="unnamed3">?</td>
      </tr>
      <logic:iterate id="targetRes" name="targetSys" property="purviewResList">
      <tr><td height="21" class="unnamed2">?</td><td height="21" class="unnamed5">
      <bean:write name="targetRes" property="cn"/>
      </td>
      <td height="21" class="unnamed6">?</td>
      </tr>
      
      <logic:iterate id="targetOpr" name="targetRes" property="purviewOprList">
      <tr><td height="21" class="unnamed4">?</td><td height="21" class="unnamed4">?</td>
      <td height="21" class="redzi">
      <bean:write property="cn" name="targetOpr"/></td>
      </tr>
      </logic:iterate>
      
      </logic:iterate>
      
      </logic:iterate>
      </table>
      
      結論
      
      多級迭代和單層差不多,唯一注意的就是id和<bean:write中的name的對應,上級logic的id與下級logic的name對應,并且取出來的要是個Collection,name和id不一定實際需要這個bean,都是虛擬的。

    posted on 2007-03-28 10:02 都市淘沙者 閱讀(305) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲视频一区二区在线观看| 国产成人亚洲综合色影视| 亚洲伊人色一综合网| 永久免费在线观看视频| 78成人精品电影在线播放日韩精品电影一区亚洲| 中文字幕免费在线看电影大全 | 久久久久女教师免费一区| 亚洲国产一区二区三区| sihu国产精品永久免费| 精品亚洲成α人无码成α在线观看 | 永久亚洲成a人片777777| 9久久免费国产精品特黄| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 美女视频黄频a免费观看| 亚洲AV无码成人精品区大在线| 国产综合成人亚洲区| 亚洲女人被黑人巨大进入| www.xxxx.com日本免费| 亚洲一区二区中文| 毛片A级毛片免费播放| 免费人成视频在线播放| 国产亚洲人成网站在线观看不卡| 久久九九AV免费精品| 亚洲国产精品成人精品小说| 久热中文字幕在线精品免费| 亚洲国产成人久久综合一区| 国产成人精品免费视频网页大全| 久久久久久精品免费看SSS| 国产成人精品亚洲日本在线| 好吊妞998视频免费观看在线| 亚洲AV成人片无码网站| 免费一看一级毛片| 亚洲国产成人久久精品大牛影视 | 日本免费污片中国特一级| 亚洲人成在线播放网站岛国| 99在线免费视频| 亚洲Av无码精品色午夜| 一区二区三区观看免费中文视频在线播放 | 国产免费播放一区二区| 国产亚洲3p无码一区二区| 久久久久久影院久久久久免费精品国产小说 |