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