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

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

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

    泰仔在線

    java學習,心情日記,繽紛時刻
    posts - 100, comments - 34, trackbacks - 0, articles - 0

     

    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" > &nbsp; </ td >
     
    < td  height ="21"  class ="unnamed3" > &nbsp; </ td >
     
    </ tr >
      
    < logic:iterate  id ="targetRes"  name ="targetSys"  property ="purviewResList" >
      
    < tr >< td  height ="21"  class ="unnamed2" > &nbsp; </ td >< td   height ="21"  class ="unnamed5" >
      
    < bean:write  name ="targetRes"  property ="cn" />
      
    </ td >
      
    < td   height ="21"  class ="unnamed6" > &nbsp; </ td >
      
    </ tr >

       
    < logic:iterate  id ="targetOpr"  name ="targetRes"  property ="purviewOprList" >
       
    < tr >< td  height ="21"  class ="unnamed4" > &nbsp; </ td >< td   height ="21"  class ="unnamed4" > &nbsp; </ 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,都是虛擬的。

    主站蜘蛛池模板: 免费无码黄网站在线观看| 国产亚洲AV手机在线观看| jizzjizz亚洲日本少妇| 国产成人亚洲影院在线观看| 免费一区二区无码东京热| 亚洲精品日韩专区silk| 好男人看视频免费2019中文| 一个人看的www免费在线视频| 好看的亚洲黄色经典| 成人片黄网站A毛片免费| 一级毛片成人免费看a| 亚洲另类自拍丝袜第1页| 免费人成视频x8x8入口| 99re视频精品全部免费| 日韩色日韩视频亚洲网站| 亚洲精品无码不卡| 国产免费拔擦拔擦8x| 无码国产精品一区二区免费vr| 亚洲永久网址在线观看| 国产亚洲综合久久系列| 国内精品免费视频自在线| 3344在线看片免费| 看免费毛片天天看| 亚洲精品熟女国产| 亚洲亚洲人成综合网络| 好吊妞在线新免费视频| 桃子视频在线观看高清免费视频 | 国内精品久久久久影院免费 | 亚洲麻豆精品果冻传媒| www国产亚洲精品久久久| 亚洲免费网站在线观看| 中文字幕一区二区三区免费视频| 亚洲成人激情小说| 亚洲欧洲日韩国产综合在线二区| 日韩亚洲国产二区| 成人免费毛片视频| 永久在线观看www免费视频| 72pao国产成视频永久免费| 亚洲乱色伦图片区小说| 亚洲精品电影在线| 亚洲男人都懂得羞羞网站|