次のような Velocity マクロがいくつかあります。
#macro(Alpha)
#set($p = 1)
#@Beta()
$p // 1
$bodyContent
#end
#end
#macro(Beta $params)
#set($p = 2)
$p // 2
$bodyContent
#end
そして、私はそれらを次のように使用しています:
#set($p = 0)
#@Alpha(...)
$p // 3
#end
私はこれが次のようにレンダリングされると信じています (フォーマットを無視します): 2, 2, 2
しかし、親スコープ名を隠す、よりローカルにスコープされた名前を含む、適切なクロージャー動作が必要です。特に、'3' とラベル付けされた $p の使用法は、値 0 を参照し、'2' は値 2 を参照し、'1' は値 1 を参照する必要があります。
適切な閉鎖セマンティクスが与えられた場合、次のように出力されます: 2, 1, 0
これを取得する方法、またはカスタム ディレクティブを実装する方法や、#macro ディレクティブの動作を変更してこれを実現する方法はありますか?