Freemarker - 禁用语法验证?

问题描述 投票:0回答:1

是否有禁用 ParseException 的选项?

我的 HTML 字符串的语法有问题? HTML 字符串是由我的用户创建的,因此可能存在语法不正确的情况。 在这些情况下,我只想将这些变量替换为空字符串,例如:

${message.} 

应替换为

""

因为对于这种语法我会得到一个 ParseException:

Syntax error in template "htmlTemplate" in line 8, column 19: Encountered "}", but was expecting one of these patterns:

我的目标是拥有这个用例:

  • 用户可以使用一些变量创建 HTML 模板(例如 ${myVariable}
  • 使用 Freemarker 将这些变量替换为“实际值”。 -> 这将完全符合我的要求,但问题是目前它不会处理整个 HTML 代码,因为我遇到了语法错误。

我已经尝试过 IGNORE_HANDLER,但这并没有解决问题

Configuration cfg = new Configuration(Configuration.VERSION_2_3_32);
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);

我该如何解决这个问题?

freemarker
1个回答
0
投票

入门有:

cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

以及注释: 为了简单起见,我抑制了例外情况。不要在实际产品中这样做。

我还没有测试会发生什么,但你可以检查一下这是否有效......

© www.soinside.com 2019 - 2024. All rights reserved.