Где Скорость ищет шаблон?

Я должен использовать Скорость из кода Java в веб-приложении (я использую его в качестве процессора почтовых шаблонов).

Так, у меня есть стандартный код:

VelocityEngine ve = new VelocityEngine ();
try {
   ve.init ();
   Template t = ve.getTemplate (templatePath);
   ...   
} catch (Exception e) {
   throw new MailingException (e);
}

Этот код всегда бросает ResourceNotFoundException. Куда я должен поместить свои шаблоны в веб-приложение (СЕТЬ-INF? путь к классу? и т.д.?) и как я должен указать путь (т.е. что я должен передать как templatePath)?

17
задан Roman 12 July 2010 в 13:55
поделиться

1 ответ

Сначала вам нужно инициализировать Velocity, вызвав Velocity. init() (в модели использования singleton), или VelocityEngine.init() (если вы используете отдельный экземпляр), и передав соответствующие параметры конфигурации. Они включают конфигурацию загрузчика ресурсов.

Куда поместить файлы шаблона, зависит от того, какой загрузчик ресурсов вы выберете - существуют файловые, classpath, jar, url и т.д. загрузчики ресурсов.

Если вы используете файловый загрузчик ресурсов, путь к шаблону должен быть абсолютным (каталог/файл). Однако при использовании загрузчика ресурсов jar путь не должен быть абсолютным (если ваши шаблоны находятся внутри jar). Это также верно для ссылок внутри шаблонов, т.е. если один из ваших шаблонов включает другой по абсолютному пути, загрузчик ресурсов jar не сможет его загрузить.

11
ответ дан 30 November 2019 в 13:45
поделиться
Другие вопросы по тегам:

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