Freemarker fuyant freemarker
j'utilise freemarker pour générer un modèle freemarker. Mais j'ai besoin d'un moyen d'échapper à freemarker balises.
comment échapper à une étiquette <#list>
ou ${expression}
?
4 réponses
vous pouvez également utiliser: ${"$"}{expression}
si vous trouvez le {} nichage confus.
j'utilise la caractéristique syntaxe alternative . Je démarre le modèle avec [#ftl] et j'utilise cette syntaxe.
pour les expressions j'utilise la chaîne caractéristique littérale: ${r"${expression}"}
dans le cas où vous voulez utiliser des chaînes Non-raw pour échapper aux doubles guillemets, apostrophes, etc, Vous pouvez faire ce qui suit:
Imaginez que vous voulez utiliser la chaîne ${Bonjour}-"l'ami de Mon amie" à l'intérieur d'une chaîne. Tu ne peux pas faire ça avec des cordes crues. Ce que j'ai utilisé qui fonctionne est:
${"\x0024{Hello}-\"My friend's friend\""}
Je n'ai pas échappé à l'apostrophe depuis que j'ai utilisé des guillemets.
vous pouvez configurer FreeMarker pour utiliser [=exp]
au lieu de ${exp}
(depuis 2.3.28), et [#...]
/ [@...]
au lieu de <#...>
| <@...>
en paramétrant à la fois la configuration interpolation_syntax
et la configuration tag_syntax
à square_bracket
(dans L'API Java: Configuration cfg; ... cfg.setInterpolationSyntax(Configuration.SQUARE_BRACKET_INTERPOLATION_SYNTAX)
et cfg.setTagSyntax(Configuration.SQUARE_BRACKET_TAG_SYNTAX)
). La syntaxe n'est pas en conflit avec la syntaxe par défaut.
il y a un cas délicat; si le modèle commence par <#ftl>
, alors il va basculer la syntaxe de la balise retour à angle_bracket
. Pour contrer cela, il suffit d'ajouter une ligne [#ftl]
devant elle.
Voir aussi: https://freemarker.apache.org/docs/dgui_misc_alternativesyntax.html