В freemarker возможно проверять, чтобы видеть, существует ли файл прежде включая его?

Мы пытаемся создать систему в freemarker, где дополнительные файлы могут быть дополнительно добавлены для замены блоков стандартного шаблона.

Мы добрались до этой точки

<#attempt>
    <#include "extension.ftl">
<#recover>
    Standard output
</#attempt>

Таким образом - если extension.ftl файл существует, он будет использоваться иначе, часть в восстановить блоке производится.

Проблема с этим состоит в том, что freemarker всегда регистрирует ошибку, которая заставила восстановить блок инициировать.

Таким образом, нам нужна одна из двух вещей:

  1. Не называйте включение, если файл не существует - таким образом потребность проверить на существование файла.

- ИЛИ -

  1. Способ предотвратить журналирование ошибки в восстановить блоке, не изменяя вход для препятствования ВСЕМ freemarker ошибкам обнаружиться.
7
задан harmanjd 13 April 2010 в 15:38
поделиться

1 ответ

Попробуйте это, чтобы получить базовый путь:

<#assign objectConstructor = "freemarker.template.utility.ObjectConstructor"?new()>
<#assign file = objectConstructor("java.io.File","")>
<#assign path = file.getAbsolutePath()>
<script type="text/javascript">
alert("${path?string}");
</script>

Затем это, чтобы пройти по структуре каталогов:

<#assign objectConstructor = "freemarker.template.utility.ObjectConstructor"?new()>
<#assign file = objectConstructor("java.io.File","target/test.ftl")>
<#assign exist = file.exists()>
<script type="text/javascript">
alert("${exist?string}");
</script>
-1
ответ дан 7 December 2019 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: