Выход из знака доллара с использованием обратной косой черты не работает

У меня есть следующий сегмент для визуализации из файла шаблона скорости.

xyz $$foo

Знаки доллара необходимо избегать из парсера VTL. И в файле шаблона я представлял его как

xyz \$\$foo

Я ожидаю

xyz $$foo

но я получаю

xyz \$foo

Что я делаю неправильно?

Ответ 1

Один из способов - использовать фиксированную строковую переменную i.e, устанавливая переменную для знака $, а затем используя ее.

#set ( $d = "$")
xyz ${d}${d}foo

Он дает ожидаемый результат

xyz $$foo

Ответ 2

Вы также можете проверить скорость EscapeTool.

Как только вы включили его в контекст (например, под названием "esc" ), вы можете использовать ${esc.d}, чтобы получить знак доллара. Метод, который вы упомянули, проще для этого конкретного случая.

Я думал, что стоит упомянуть, потому что он предоставляет несколько других удобных методов, чтобы избежать строк, подходящих, если ваши шаблоны генерируют Java/javascript/html и т.д.

Ответ 3

Также может быть полезно использовать Velocity NumberTool.

Он имеет встроенный форматировщик валют:

$myNumber                   -> 13.55
$number.format($myNumber)   -> 13.6
$number.currency($myNumber) -> $13.55
$number.integer($myNumber)  -> 13