Freemarker的逃脱的freemarker(Freemarker escaping freem

2019-09-02 03:00发布

我使用的freemarker生成一个Freemarker模板。 但我需要一些方法来逃避freemarker的标签。

我将如何逃脱<#list>标签或${expression}

Answer 1:

你也可以使用: ${"$"}{expression}如果发现{}嵌套混乱。



Answer 2:

我使用的替代语法功能。 我先从[#ftl]模板,并使用此语法。

为了表达我用字符串文字功能: ${r"${expression}"}



Answer 3:

在当你想使用非原始字符串,这样就可以逃脱双引号,顿号等的情况下,你可以做到以下几点:

试想一下,你想使用字符串$ {}你好 - “我的朋友的朋友”字符串里。 你不能做到这一点与原始字符串。 我所使用的工作原理是:

${"\x0024{Hello}-\"My friend's friend\""}

我也没能逃脱撇号,因为我用双引号。



Answer 4:

您可以配置FreeMarker的使用[=exp]而不是${exp} (自2.3.28),和[#...] / [@...]而不是<#...> | <@...>通过同时设置interpolation_syntaxtag_syntax配置设置square_bracket (在Java API: Configuration cfg; ... cfg.setInterpolationSyntax(Configuration.SQUARE_BRACKET_INTERPOLATION_SYNTAX)cfg.setTagSyntax(Configuration.SQUARE_BRACKET_TAG_SYNTAX) 那么语法不使用默认的语法冲突。

还有一个棘手的案件; 如果模板开头<#ftl>那么它将切换标记语法回angle_bracket 。 为了反驳说,只需添加一个[#ftl]前行。

参见: https://freemarker.apache.org/docs/dgui_misc_alternativesyntax.html



文章来源: Freemarker escaping freemarker
标签: freemarker