評価されたパラメータを持つ呼び出しメソッドのためのNVelocity構文

StackOverflow https://stackoverflow.com/questions/3251185

  •  15-09-2020
  •  | 
  •  

質問

私はかなり単純なテンプレートを持っています。しかしながら、非空間は、それ自体が非v velocity変数である方法パラメータを評価するようではない。次のようなNVelocityテンプレートを取ります。

#if (--- CONDITION SNIPPED ---)
    <blockquote class="column span-4">
          I MADE IT!
    </blockquote>
#else
    <blockquote class="column span-4">
         $extensionMethods.TestMethod(${var1})
</blockquote>       
#end
.

上記のテンプレートでは、$extensionMethodsはクラスのインスタンスとして渡され、評価された数字を渡すときには不思議に機能します(例えば、$extensionMethods.TestMethod(4)は毎回機能します)。ただし、$var1を使用すると、文字列全体がAS-IS:$extensionMethods.TestMethod(${var1})に返されるようになります。

は、上記のテンプレートを正しく評価するために遅延させる方法に変数を通過させる方法は?

役に立ちましたか?

解決

問題を抱えている場合は、変数型、またはメソッドの可用性と関係がある可能性があります。私は次のものを構築してテストしました:

public class TestClass
{
    #region Methods
    public string DoSomething(string name)
    {
        return name.ToUpperInvariant();
    }

    public string DoSomethingElse(int age)
    {
        return (age*10).ToString();
    }
    #endregion
}
.

と私のテンプレート:

#set($myVar = "matt")
#set($myVar2 = 10)

Name: $test.DoSomething(${myVar})
Age: $test.DoSomethingElse(${myVar2})
.

と出力:

Name: "MATT"
Age: 100
.

あなたの拡張方法のコードを見ることができますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top