我使用的freemarker生成一个Freemarker模板。 但我需要一些方法来逃避freemarker的标签。
我将如何逃脱<#list>
标签或${expression}
?
我使用的freemarker生成一个Freemarker模板。 但我需要一些方法来逃避freemarker的标签。
我将如何逃脱<#list>
标签或${expression}
?
你也可以使用: ${"$"}{expression}
如果发现{}嵌套混乱。
我使用的替代语法功能。 我先从[#ftl]模板,并使用此语法。
为了表达我用字符串文字功能: ${r"${expression}"}
在当你想使用非原始字符串,这样就可以逃脱双引号,顿号等的情况下,你可以做到以下几点:
试想一下,你想使用字符串$ {}你好 - “我的朋友的朋友”字符串里。 你不能做到这一点与原始字符串。 我所使用的工作原理是:
${"\x0024{Hello}-\"My friend's friend\""}
我也没能逃脱撇号,因为我用双引号。
您可以配置FreeMarker的使用[=exp]
而不是${exp}
(自2.3.28),和[#...]
/ [@...]
而不是<#...>
| <@...>
通过同时设置interpolation_syntax
和tag_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