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} ?

5
demandé sur Pat 2009-10-29 05:02:53

4 réponses

vous pouvez également utiliser: ${"$"}{expression} si vous trouvez le {} nichage confus.

8
répondu monzonj 2011-03-02 16:05:55

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}"}

7
répondu tuler 2011-09-27 23:37:28

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.

0
répondu Jaime Garza 2014-01-15 19:47:57

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

0
répondu ddekany 2018-04-05 12:12:35