Apache Velocity

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Apache Velocity
[[Файл:Логотип Jakarta Velocity|250x350px]]
Тип

Обработчик шаблонов

Разработчик

Apache Software Foundation

Написана на

Java

Операционная система

Кроссплатформенное ПО

Последняя версия

1.7 (29 ноября 2010)

Лицензия

Apache 2.0 license

Сайт

[velocity.apache.org velocity.apache.org velocity.apache.org]]

Apache Velocity является проектом с открытым исходным кодом, развиваемый Apache Software Foundation. Ранее Apache Velocity был известен как Jakarta Velocity и входил в состав зонтичного проекта Apache Jakarta Project, но впоследствии был выделен в самостоятельный популярный проект. Velocity - это процессор шаблонов (обработчик шаблонов), базирующийся на Java, который обеспечивает простой, но мощный шаблонный язык, не требующий предварительной подготовки модели переменных для шаблона — в шаблон просто передаются ссылки на Java-объекты, а обработчик разбирает указанные методы и, посредством Java reflection, получает их значения. Его цель состоит в том, чтобы гарантировать чистое разделение между уровнем представления и бизнес уровнем в Веб-приложении (шаблон проектирования Model-View-Controller), однако он не ограничен областью Веб-приложений.

Использование[править | править исходный текст]

Некоторые общие типы приложений которые могут использовать Velocity:

  • Веб-приложения: Веб-дизайнеры создают HTML-страницы с указателями места заполнения которые будут динамически заменены необходимой информацией. Страницы могут обрабатываются с помощью VelocityViewServlet или любым другим из множества фреймворков, которые поддерживают Velocity.
  • Генерация исходного кода: Velocity может использоваться для генерации кода Java, SQL, PostScript, JavaScript, Perl и пр., базирующегося на шаблоне. Множество коммерческих пакетов программного обеспечения и пакетов программного обеспечения с открытым исходным кодом используют Velocity таким способом.[1]
  • Автоматические электронные письма: Существует множество приложений генерирующих автоматические электронные письма для регистрации учетных записей, напоминания забытых паролей или письма содержащие автоматически сгенерированные отчеты. При помощи Velocity шаблон электронного письма может быть сохранен в виде текстового файла, а не встроен непосредственно в Java код.
  • XML-преобразование: Velocity обеспечивает задачу Ant, названную Anakia, которая читает XML-файл и делает его доступным шаблону Velocity. Общее приложение должно преобразовать документацию, сохраненную в универсальном формате «xdoc» в стилизованный документ HTML.

Пример кода[править | править исходный текст]

Пример использования шаблона, и простого Java приложения. Исходный текст шаблона с именем template.vm

## Шаблон с именем template.vm
<html>
    <body>
       ## $foo - это переменная шаблона
       Hello $foo World!
    </body>
</html>

С помощью символов «##» помечаются однострочные комментарии, символ «$» определяет, что за ним в шаблоне следует имя переменной.

Исходный Java-код приложения, связывающего переменную «name» в Java коде и переменную «$foo» в шаблоне:

import java.io.*;
import org.apache.velocity.*;
import org.apache.velocity.app.Velocity;
 
public class HelloVelocityWorld {
	public static void main(String[] args) throws IOException {
 
		Velocity.init(); // инициализация Velocity
		VelocityContext vc = new VelocityContext(); // создание контекста Velocity
		String name = "Velocity";
		vc.put("foo", name); // атрибут "name" связывается с именем переменной $foo в шаблоне и помещается в контекст
 
		Template template = Velocity.getTemplate("template.vm", "utf-8"); // загрузка шаблона с именем template.vm
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // создается выходной поток
		template.merge(vc, bw); // метод merge() принимает набор данных в виде объекта "vc" и объект потока "bw"		
		bw.flush();
		bw.close();
	}
}

в результате Velocity сгенерирует следующий текст документа:

<html>
    <body>
     Hello Velocity World!
    </body>
</html>

Синтаксис и общие концепции шаблона Apache Velocity очень похожи на синтаксис более раннего обработчика шаблонов WebMacro[2], который теперь также является проектом с открытым исходным кодом.

См. также[править | править исходный текст]

Литература[править | править исходный текст]

  • Роб Харроп, Ян Дарвин Pro Jakarta Velocity: From Professional to Expert. — 1-е изд. — Apress, 2004. — 370 с. — ISBN 978-1590594100
  • Джим Коул, Джосеф Д. Гродески Mastering Apache Velocity. — 1-е изд. — Wiley, 2003. — 372 с. — ISBN 978-0471457947

Примечания[править | править исходный текст]

  1. PoweredByVelocity. Velocity Wiki. Wiki.apache.org (30 декабря 2009). Проверено 3 апреля 2011. Архивировано из первоисточника 27 июля 2012.
  2. Apache Velocity — Overview. Раздел Acknowledgement. velocity.apache.org (30 ноября 2010). Проверено 29 сентября 2011. Архивировано из первоисточника 27 июля 2012.

Ссылки[править | править исходный текст]