НАСТРОЙКА ШАБЛОНОВ СКОРОСТИ
Я решил использовать этот вопрос для решения проблемы с настройкой пути к шаблону. Я использую скорость для шаблонов писем в формате HTML.
Вот хорошая пара методов, которые вы можете использовать, которые иллюстрируют настройку пути шаблона. Он устанавливает свойство 'file.resource.loader.path' для абсолютного пути. Я создал каталог для шаблонов, а затем щелкнул правой кнопкой мыши файл шаблона, чтобы получить полный путь (в Eclipse). Этот полный путь используется в качестве значения свойства file.resource.loader.path. Я также добавил свойство runtime.log.logsystem.class и установил его, поскольку получал исключения, жалующиеся на ведение журнала.
МЕТОДЫ ПОЛЕЗНОЙ СКОРОСТИ
public static VelocityEngine getVelocityEngine(){
VelocityEngine ve = new VelocityEngine();
Properties props = new Properties();
// THIS PATH CAN BE HARDCODED BUT IDEALLY YOUD GET IT FROM A PROPERTIES FILE
String path = "/absolute/path/to/templates/dir/on/your/machine";
props.put("file.resource.loader.path", path);
props.setProperty("runtime.log.logsystem.class", "org.apache.velocity.runtime.log.NullLogSystem");
ve.init(props);
return ve;
}
public static String getHtmlByTemplateAndContext(String templateName, VelocityContext context){
VelocityEngine ve = getVelocityEngine();
Template template = ve.getTemplate(templateName);
StringWriter writer = new StringWriter();
template.merge(context, writer );
System.out.println( writer.toString());
String velocityHtml = writer.toString();
return velocityHtml;
}
КАК ИСПОЛЬЗОВАТЬ ВЫШЕ КОДА, СОЗДАВАЯ КОНТЕКСТ СКОРОСТИ ДЛЯ КОРМЛЕНИЯ С ПОЛЕЗНЫМ МЕТОДОМ
Вот как вы можете использовать вышеуказанные методы. Вы просто указываете имя файла шаблона и создаете простой контекст VelocityContext
для хранения переменных шаблона.
VelocityContext context = new VelocityContext();
context.put("lastName", "Mavis");
context.put("firstName", "Roger");
context.put("email", "mrRogers@wmail.com");
context.put("title", "Mr.");
String html = VelocityUtil.getHtmlByTemplateAndContext("email_template_2015_10_09.vm", context);
ПРИМЕР ШАБЛОНА HTML
Доступ к переменным можно получить следующим образом (в моем случае это файл email_template_2015_10_09.vm
):
<p> Hello $firstName $lastName </p>