6

多数の異なる .vtl ファイル間で共有されているマクロを更新して、新しいパラメーターを含めたいと考えています。ただし、.vtl ファイルの 1 つの呼び出しのみを変更し、他のファイルは変更しないでおきたいと考えています。したがって、基本的に、オプションのパラメーターを追加するか、パラメーターが指定されていない場合はデフォルト値を持つパラメーターを追加したいと考えています。

ドキュメント(here)では、「#macro」セクションでオプションのデフォルト値について言及されていますが、数時間それらをいじった後、適切な構文が何であるかを理解することはできません。

だから私は既存のマクロを取りたい:

    #macro( my_macro ) 
        oldValue
    #end

そして、次のようなマクロに変換します。

    #macro( my_macro $param="oldValue" ) 
        $param
    #end

これら2つの呼び出しのいずれかで適切に呼び出して、指定された出力を取得できる場所:

    #my_macro()            => oldValue
    #my_macro("newValue")  => newValue

ドキュメントで指定されているもののすべての順列を試しましたが、機能するものが見つかりません。誰かが適切な構文を知っていますか? 私が見逃しているプロパティはありますか?

Velocity 1.7 と VelocityTools 2.0 を使用しています。それが重要な場合は、設定も使用しています velocimacro.arguments.strict=true 。ただし、一連の更新/再テストを行わないと、このプロパティを簡単に変更できません。

4

1 に答える 1