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

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

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

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    tpl標簽定義

    Posted on 2005-11-27 20:32 canonical 閱讀(1117) 評論(0)  編輯  收藏 所屬分類: Witrix開發平臺
        tpl自定義標簽的設計目標之一是盡量減少配置說明項. 在tpl標簽庫中, 標簽定義格式如下
        <標簽庫名稱>
            <自定義標簽名 demandArgs="argA, argB"
                importVars="varA, varB"
                otherArgs="optionalArgA, optionalArgB" localScope="trueOrFalse" >

                自定義標簽的內容, 可以是任何tpl代碼
            </自定義標簽名>

        </標簽庫名稱>

        demandArgs中指定調用時必須給定的參數的名稱列表, importVars指定從調用環境中導入的變量的名稱列表,otherArgs指定可選參數的名稱列表. demandArgs, importVars和otherArgs這三者的集合包含了所有該自定義標簽能夠接受的參數. tpl編譯器會檢查這些調用規則是否被滿足. 在運行的時候, 未指定的可選參數會被初始化為null.

        在調用時明確的指定的變量值會覆蓋importVars導入的變量值. 例如
        <c:set var="varA" value="a" />
        <MyLib:自定義標簽名 /> // 根據importVars設定, 在此標簽內varA的值為a
        <MyLib:自定義標簽名 varA="b" /> // args設定會覆蓋importVars導入的值,因此在標簽內部 varA的值為b
        // 調用標簽完成后, varA的值恢復為a

        tpl中的參數聲明方式是非常簡化的,但是它仍然保留了最關鍵的信息:變量名稱. 而在弱類型的Expresison Language中, 變量類型本來就不重要. 與jsp tag中的標簽聲明作個對比.
         <tag>
            <name>template</name>
            <tagclass>edu.thu.web.tags.TemplateTag</tagclass>
            <bodycontent>JSP</bodycontent>
            <attribute>
                <name>src</name>
                <required>true</required>
                <rtexprvalue>true</rtexprvalue>
            </attribute>
        </tag>
        jsp tag這種標簽聲明方式非常冗長, 提供的有效信息密度很低, 而相對于tpl標簽的聲明方式所能夠提供的附加信息也沒有很大的意義. 這種設計上的問題也深深的影響到JSF等派生技術.

        localScope參數指定了此自定義標簽是否具有局部變量環境, 如果為true(缺省值),  則調用此標簽的時候會自動進行變量壓棧處理, 在標簽內部無法訪問參數列表之外的變量, 運行中所產生的臨時變量也不會影響到外部環境. tpl中的變量堆棧與webwork的ValueStack機制是有一些差異的. webwork2中的ognl語言在訪問OgnlValueStack中的對象的時候缺省采用的是一種遞歸查找機制, 即在當前環境中找不到對象, 則自動查找上一層環境中的變量. tpl中的標簽結構可以多重嵌套, 產生非常復雜的結構, 所以缺省情況下tpl標簽采用了類似于函數堆棧的設計, 在子標簽中的代碼一般情況下是無法訪問父標簽環境中的變量的(除非指定了localScope參數為true). localScope支持與importVars機制相結合之后, 我們可以實現比OgnlValueStack更加靈活也更加穩健的變量訪問策略.  

    主站蜘蛛池模板: 亚洲av中文无码| 丁香花在线观看免费观看| 亚洲av永久无码嘿嘿嘿| 无码人妻一区二区三区免费看| 亚洲精品无码鲁网中文电影| 999zyz**站免费毛片| 亚洲国产另类久久久精品| 亚洲av丰满熟妇在线播放| 免费看黄的成人APP| 亚洲av激情无码专区在线播放| 最近中文字幕免费完整| 91嫩草亚洲精品| 国产美女被遭强高潮免费网站| 自拍偷自拍亚洲精品播放| 国产精品免费福利久久| 在线播放免费人成视频在线观看| 亚洲中文字幕无码mv| 亚洲av高清在线观看一区二区| 一区二区三区视频免费观看| 亚洲电影国产一区| 成人无遮挡裸免费视频在线观看| 国产亚洲精品AAAA片APP| 最新精品亚洲成a人在线观看| 亚洲中文字幕无码爆乳| 亚洲成a人片在线播放| 久久久国产精品福利免费| 亚洲国色天香视频| 四虎影视免费永久在线观看| 亚洲看片无码在线视频| 亚洲а∨天堂久久精品| 免费无码一区二区三区| 亚洲人成人网站18禁| 最近免费最新高清中文字幕韩国| 亚洲中文字幕无码一去台湾| 亚洲精品无码99在线观看 | 日韩视频在线免费观看| 一级毛片人与动免费观看| 日产亚洲一区二区三区| 国产aa免费视频| 永久免费在线观看视频| 色屁屁在线观看视频免费|