<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 15.4. Velocimacro 雜記 本節是關于Velocimacros的一個小型FAQ。本屆內容會不時更新,所以請常來檢查新的內容, 注 : 本節中, 'Velocimacro' 將簡寫為'VM'。 Q:是否可以使用指令directive 或者 VM 作為另一個VM的參數? 例如: \#center( \#bold("hello") ) A: 不行。指令不能用作指令的參數,而大多數情況下,作為實際的應用,VM就是指令。 不過也有一些辦法。一個簡單的做法是使用雙引號來加工你的內容。所以,你可以這樣: ``` #set($stuff = "#bold('hello')" ) #center( $stuff ) ``` 甚至可以節省一個步驟: ``` #center( "#bold( 'hello' )" ) ``` 請注意,后面這個例子中,參數是在VM內部被求值,不是在調用的那一層次上。換句話說,被傳入的VM的參數是整個被傳入的,并且在傳入的VM內部被求值。所以我們可以這樣做: ``` #macro( inner $foo ) inner : $foo #end #macro( outer $foo ) #set($bar = "outerlala") outer : $foo #end #set($bar = 'calltimelala') #outer( "#inner($bar)" ) ``` 這里,輸入將會是: ``` Outer : inner : outerlala ``` 因為"\#inner($bar)" 的求值發生在\#outer()內部,所以在\#outer() 內設置的$bar得值會是其使用的值。 這是一個有意的保護特征—參數按名稱傳遞給VM,所以可以將象狀態引用的東西傳給VM ,比如: ``` #macro( foo $color ) <tr bgcolor=$color><td>Hi</td></tr> <tr bgcolor=$color><td>There</td></tr> #end #foo( $bar.rowColor() ) ``` rowColor() 被重復調用而不是一次。為避免如此,可以調用VM外部的方法,然后將值傳遞給VM. ``` #set($color = $bar.rowColor()) #foo( $color ) ``` Q:是否可以通過\#parse()注冊VM ? A:當前, Velocimacros 在其首次在模版中使用前必須首先定義它。這意味著, #macro() 宣稱應該在使用Velocimacros之前。 如果你想\#parse() 一個包含\#macro() 指令的模板,記住這個非常重要。因為\#parse() 在運行時發生,解析器在解析時要決定是否模版中一個看起來像VM的元素真是VM,所以解析一系列VM 宣稱可能并不能如愿地工作的很好。為避免如此,可以簡單地使用velocimacro.library 的辦法,使Velocity 在啟動時載入VM。 Q. 什么是VM自動載入(Velocimacro Autoreloading)? A. 這是一個屬性,在開發時使用,而不時運行時: ``` velocimacro.library.autoreload ``` 默認值為false。當設置為true時,連同&lt;type&gt;.resource.loader.cache 屬性設置為false(這里<type> 是使用的資源載入器的名稱,比如'file') ,Velocity 引擎在你創建VM庫文件是將自動載入其改變,這樣你就不必將其導入servlet 引擎(或者應用程序)中,或者用其他手段來使其自動重新載入。 下面是一個簡單的設置配置組合: ``` file.resource.loader.path = templates file.resource.loader.cache = false velocimacro.library.autoreload = true ``` 注意在生產狀態(運行時)不要使其打開。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看