У меня есть конфигурация Freemarker, в которой все файлы FTL в определенной папке настроены на автоматический выход для HTML. Код похож на это:
getConfig().setTemplateExceptionHandler(new StackTraceMaskingTemplateExceptionHandler());
TemplateConfiguration tcHTML = new TemplateConfiguration();
tcHTML.setOutputFormat(HTMLOutputFormat.INSTANCE);
tcHTML.setAutoEscapingPolicy(ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY);
getConfig().setTemplateConfigurations(
new ConditionalTemplateConfigurationFactory(
new PathGlobMatcher("templates/**"),
tcHTML));
В большинстве случаев работает так, как задумано. Однако, если одна переменная равна нулю, FTL возвращает ошибку, так как не может отображать нулевые значения. Например, в приведенном ниже коде myVar имеет значение null:
<input name=${myVar} />
Я знаю, что могу использовать !
, чтобы установить пустое значение по умолчанию для переменной, однако, поскольку мы говорим о устаревшем кодеЯ хотел бы, чтобы конфигурация автоматически делала это. Что-то похожее на использование этого <#escape x as (x?html)!>
в FTL, но прямо из конфигурации.
Возможно ли это?