Разверните логическую переменную в строку «true» или «false» - PullRequest
9 голосов
/ 02 октября 2009

В шаблоне freemarker я хочу расширить логическую переменную до такой строки:

<#assign booleanVar = "test".isEmpty() />
state: ${booleanVar} <#-- this throws an exception! -->

Вот что я хочу получить в качестве вывода:

state: false

Единственный способ достичь этой цели, который я нашел сейчас, это:

state: <#if booleanVar>true<#else>false</#if>

Есть ли более простой способ сделать это?

Ответы [ 2 ]

21 голосов
/ 02 октября 2009
booleanVar?string("true", "false")

Хотя true / false по умолчанию , поэтому

booleanVar?string

должно работать нормально.

4 голосов
/ 28 июня 2013

Начиная с FreeMarker 2.3.20, если вы хотите напечатать true / false (потому что вы генерируете JavaScript или что-то подобное), напишите ${booleanVar?c} (?c для «компьютерного формата», также используемого для чисел). ${booleanVar?string} опасно для этого, поскольку кто-то может установить для параметра boolean_format значение yes,no или что-то еще ... (Кстати, в этом случае ${booleanVar} будет работать и в 2.3.20, и вы получите yes и no.)

См .: http://freemarker.org/docs/ref_builtins_boolean.html#ref_builtin_c_boolean

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...