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

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

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

    StevenBot-Saltsam

    眼睛能裝下世界,為何卻裝不下眼淚? 一只風箏一輩子只為一根線冒險。 那不是一場游戲,為何總有一根線牽著心懷,隱隱作疼? 那不是一段邂逅,為何飄在橋上的影子,總纏進夢鄉? 那不是一個夢境,為何你的溫柔私語,總是不經意的響起?

    導航

    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統計

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    datas link

    OSChinal Sources codes Library

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主題:struts2 Tags 堆棧分析

    1. property: <s:property value="username"/>


     2. property 取值為字符串: <s:property value="'username'"/>


     3.  property 設定默認值: <s:property value="admin" default="管理員"/>


     4. property 設定HTML: <s:property value="'<hr/>'" escape="true"/> 輸出 <hr/>

     

     5. set 設定adminName值(默認為request 和 ActionContext): <s:set var="adminName"  value="username" />

    set 從request取值: <s:property value="#request.adminName" />
    set 從ActionContext取值: <s:property value="#adminName" />

    set 設定范圍: <s:set var="adminPassword" value="password" scope="session"/>

    set 從相應范圍取值: <s:property value="#session.adminPassword"/>

    說明:set 在以前的版本中有name id,但是在2.1版本開始不推薦使用,用var代替.實際var表示把變量壓入棧actioncontext. 官方這樣說明var的:Name used to reference the value pushed into the Value Stack;

    這樣我們可以用#key來訪問.

     

    6.  bean標簽

     <s:bean name="com.awf.tags.Dog"  var="mydog">
        <s:param name="name" value="'pp'"></s:param>
        <s:property value="name"/>
       </s:bean>

     

    說明:注意到pp用單引號,因為這時要真正用到String,如果沒有加單引號,struts2會默認用OGNL到ValueStack找值.

    對于為什么可以<s:property value="name"/>(取到pp)這樣取值,可以做個小實驗在set標簽里加入<s:debug/>,這樣你可能看到整個棧數 據的出入,此時棧頂當然是mydog對象,這個標簽執行完后就可以出棧了,這時action又保持在棧頂了.

    此時mydog被存入到actioncontext棧中,所以要取值要用到#號了.

    取值:<s:property value="#mydog.name/>

     

    7. include標簽

     <s:include value="/index.html"></s:include>

    這里value的默認處理方式是要內容當做String,不是OGNL,如果這時要用OGNL可以用%,這就是%的實際意義了,其實上面所講的標簽 也可以使用%,OGNL對于那些默認使用OGNL的標簽會忽略%號,真搞不懂為什么全部都統一,這樣我們就不用記這么多了^^,下面是具體使用方法:

    <s:set var="incPage" value="%{'/index.html'}" />
     <s:include value="%{#incPage}"></s:include>

     

    現在回到include標簽,這個標簽真的不好用對中文的支持不好,可能有BUG,所以還是用jsp自帶的動態包含/靜態包含.

     

    8. if elseif else標簽

    定義變量 num= <s:set var="num" value="'100'"/>   set定義的變量存在ActionContext棧中

    <s:if test="#num< 0"> 小于0 </s:if>
     <s:elseif test="#num <50"> 小于50 </s:elseif>
      <s:else>大于50</s:else>

     

    <s:if test="#parameters.aaa == null">null</s:if>

     

    這里說到#parameters不得不提一下,我們在地址欄輸入的變量會存在ActionContext棧中,如xx/sdfds.jsp?name=1

    這樣我們可能用OGNL這樣取值#parameters.name ,注意這里取出來的是一個集合,如果你這樣訪問xx/sdfds.jsp?name=1&name=2,你可以發現可以取出兩個值.因為這樣所以在寫程序時我樣最好精確定位像這樣#parameters.name[0],就算你能保證只能一個值,也要這樣.

     

    9. iterator標簽,遍歷集合

    <s:iterator value="{1, 2, 3}" >
       <s:property/> 
    </s:iterator>

     

    自定義變量:

    <s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
       <s:property value="#x.toUpperCase()"/> |
      </s:iterator>

     

    <s:iterator value="{'aaa', 'bbb', 'ccc'}" 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>

     

    說明:偶數和其數不是下標,下標0其實是第一個當然是奇數了.

     

    遍歷map:

    <s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
       <s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
      </s:iterator>

     

    posted on 2011-10-08 09:33 Steven_bot 閱讀(495) 評論(0)  編輯  收藏 所屬分類: 遇到的一些問題

    主站蜘蛛池模板: 精品亚洲A∨无码一区二区三区| 国产成人高清精品免费鸭子| 亚洲精品夜夜夜妓女网| 日韩毛片在线免费观看| 国产小视频免费观看| 亚洲妇女无套内射精| 全免费A级毛片免费看网站 | 亚洲人成色7777在线观看| 美女无遮挡免费视频网站| 吃奶摸下高潮60分钟免费视频| 亚洲爆乳成av人在线视菜奈实| 全免费a级毛片免费看不卡| 亚洲AV无码精品国产成人| 国产乱子影视频上线免费观看| 青青青亚洲精品国产| 亚洲国产精品尤物yw在线| 久青草视频97国内免费影视| 国产性爱在线观看亚洲黄色一级片| 国产精品成人免费观看| 国产亚洲福利精品一区| 99精品热线在线观看免费视频 | 亚洲?V乱码久久精品蜜桃| 日韩精品免费一线在线观看| 亚洲熟妇少妇任你躁在线观看无码 | 久久亚洲私人国产精品| 国产香蕉免费精品视频| 中文日韩亚洲欧美制服| 亚洲av日韩av欧v在线天堂| 99re6在线视频精品免费| 久久亚洲AV成人出白浆无码国产 | 亚洲成av人片一区二区三区| 久久不见久久见免费影院www日本| 亚洲成av人在线视| 69成人免费视频| 国产精品亚洲精品日韩动图| 中文字幕亚洲一区二区三区| 99精品视频免费观看| 麻豆亚洲AV成人无码久久精品 | av无码免费一区二区三区| 久久久亚洲精华液精华液精华液 | 亚洲女同成人AⅤ人片在线观看|