8

速度テンプレートで次のコードを検討します。

#set($brandName = $player.brand.name)
#set($brandNameExample = "NameExample")

#if($brandName == $brandNameExample)
    11111
#else
    22222
#end

私はいつも得る22222。もちろん、player.brand.name = "NameExample"

誰かが私にそれを機能させる理由と方法を説明できますか?

4

3 に答える 3

4

これをテストすることをお勧めします

#set($brandName = "NameExample")
#set($brandNameExample = "NameExample")
#if($brandName == $brandNameExample)
11111
#else
22222
#end

それが機能する場合は、$ player.brand.nameが正しい値を保持していることを確認するために、$ player、$ player.brand、$player.brand.nameを出力しようとします。-ケースの感度?-「$player.brand.name」のスペルが正しいことを確認しますか?

私はあなたが単にオブジェクト$playerに問題があると思います

于 2013-02-18T10:20:29.193 に答える
1

解決策を見つけました:速度を2回呼び出しました:1回目はプレーヤーオブジェクトなしで、2回目はそれを使用しました。したがって、最初の呼び出しでは、プレーヤーに関するすべてのディレクティブを評価できず、nullが返されました。よろしくお願いします

于 2013-02-18T15:05:55.423 に答える
0

最初にそれをコンテキストに追加します(公式ドキュメント:ここを参照):

context.put("StringUtils", StringUtils.class);

次に、VelocityテンプレートからStringUtils.equals()メソッドを呼び出すことができます。

#if($StringUtils.equals($brandName, $brandNameExample))
    ## logic here...
#end
于 2021-05-28T07:22:17.543 に答える