Apache Velocity
![]() |
|
| Тип | |
|---|---|
| Разработчик | |
| Написана на | |
| Операционная система | |
| Последняя версия | |
| Лицензия | |
| Сайт | |
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
Примечания [править]
- ↑ PoweredByVelocity. Velocity Wiki. Wiki.apache.org (30 декабря 2009). Архивировано из первоисточника 27 июля 2012. Проверено 3 апреля 2011.
- ↑ Apache Velocity — Overview. Раздел Acknowledgement. velocity.apache.org (30 ноября 2010). Архивировано из первоисточника 27 июля 2012. Проверено 29 сентября 2011.
Ссылки [править]
- Официальный сайт (англ.)
- Velocity wiki (англ.)
- Сравнение обработчиков шаблонов для Java (англ.)
| Это заготовка статьи о программном обеспечении. Вы можете помочь проекту, исправив и дополнив её. |
| Веб-фреймворки | |
|---|---|
| ASP.NET | |
| ColdFusion |
ColdSpring • Fusebox • Mach-II • Model-Glue |
| Java |
Apache (Cocoon • Struts • Velocity • WebWork 2) • AppFuse • Aranea • Eclipse • Facelets • Flexive • FreeMarker • Google Web Toolkit • Grails • Hamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClient • Spring • Stripes • Tapestry • ThinWire • Vaadin • WebMacro • WebWork • WebObjects • Wicket • ZK |
| JavaScript |
node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JS • jQuery • jMaki • Microsoft AJAX Library • MochiKit • MooTools • Prototype • qooxdoo • Rialto Toolkit • Rico • script.aculo.us • SmartClient • Spry • SproutCore • Yahoo! UI Library • Underscore • PhoneGap |
| Perl |
Catalyst • Interchange • Titanium • Maypole • HTML:Mason • Mojolicious |
| PHP | |
| Python | |
| Ruby | |
| Прочие языки |
Alpha Five • Fusebox (ColdFusion • PHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL) • Play |


