Обработка нулевых значений с включенным автоматическим экранированием - PullRequest
0 голосов
/ 10 октября 2019

У меня есть конфигурация 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, но прямо из конфигурации.

Возможно ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...