如何使用VelocityTemplate逃脱撇号

问题描述

希望您能帮助我找出以VTL语法转义撇号(单引号)的最佳方法。这是对我所有不带撇号的值起作用的内容。我试图添加一个额外的撇号,并在撇号前面尝试了一个反斜杠-两者均无效。预先感谢您的帮助!

#set($a=${ITEM_STAGING.Item_Gift_Wrap_Price})##
#if (${ITEM_STAGING.Department== "MEN'S DEPARTMENT"})##
#set($a="10.50")
$a##
#else##
$a##
#end##

问题是“ MEN”一词后的撇号。

在此先感谢您的帮助- 公元前

解决方法

这不是一个转义问题,而是一个语法问题。您不应该将条件本身用大括号括起来(并且这里不需要任何大括号,请参见doc)。您应该写:

#set($a=${ITEM_STAGING.Item_Gift_Wrap_Price})##
#if ($ITEM_STAGING.Department == "MEN'S DEPARTMENT")##
#set($a="10.50")
$a##
#else##
$a##
#end##

仅当您要在单引号引起来的字符串中使用单引号,或在双引号引起来的字符串中使用双引号时,才应考虑转义。在这种情况下,最好的方法是将报价加倍,例如:'MEN''S DEPARTMENT'