Apache Velocity | это... Что такое Apache Velocity? (original) (raw)

О проекте Microsoft под кодовым названием Velocity см. Velocity (кэш-память).

Apache Velocity

Логотип Jakarta Velocity
Тип Обработчик шаблонов
Разработчик Apache Software Foundation
Написана на Java
Операционная система Кроссплатформенное ПО
Последняя версия 1.7 (29 ноября 2010)
Лицензия Apache 2.0 license
Сайт velocity.apache.org

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

Использование

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

Пример кода

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

Шаблон с именем template.vm

## $foo - это переменная шаблона Hello $foo World!

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

Исходный 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 сгенерирует следующий текст документа:

Hello Velocity World!

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

См. также

Литература

Примечания

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

Ссылки

Просмотр этого шаблона Apache Software Foundation
Проекты верхнего уровня ActiveMQAntApache HTTP Server • APR • Beehive • Cassandra • Cayenne • CamelCommonsCocoonCouchDB • DB • Directory • Excalibur • Forrest • Geronimo • Gump • HadoopHarmonyHBase • HiveMind • HttpComponents • iBATIS • Jackrabbit • James • JMeter • Lenya • Maven • Mina • mod perl • MyFaces • Nutch • OFBiz • OpenOffice.org • POI • Portals • Santuario • ServiceMix • Shale • ShiroSpamAssassinStrutsSubversionTapestry • Tcl • Tomcat • Turbine • Velocity • WebWork 2 • WicketXalanXerces • XMLBeans
Подпроекты Apache Commons BCEL • BSF • JCS Apache Lucene Lucene Java • Lucene4c • Lucy• Solr Apache DB Derby • Torque • DdlUtils • OJB • JDO
Apache Web Services Axis • Axis2 • CXF • WS-Commons • EWS • JaxMe • jUDDI • Kandula • Mirae • Muse • Pubscribe • Sandesha • Scout • SOAP • Synapse • TSIK • Tuscany • Woden • WSIF • WSRF • WSS4J • XML-RPC
Другие проекты Batik • FOPLog4j
Развивающиеся проекты (Incubator) XAP • River • OpenEJB • OpenJPA • Graffito • Tuscany • Log4Net • Roller • Felix • Abdera • CeltiXfire • FtpServer • Heraldry • Ivy • JuiCE • Kabuki • Lokahi • Lucene.Net • mod_ftp • NMaven • Ode • stdcxx • Woden • WSRP4J • Yoko • WADI • Qpid • stdcxx • TripleSoup • UIMA• Adobe Flex
Списанные проекты (Attic) AxKit • Cactus • ECS • Jakarta • ORO • Regexp • Slide • Taglibs
Лицензия: Лицензия ApacheСайт: apache.org
Просмотр этого шаблона Веб-фреймворки
ASP.NET DotNetNukeASP.NET MVC • MonoRail
ColdFusion ColdSpring • Fusebox • Mach-II • Model-Glue
Java Apache (CocoonStrutsVelocity • WebWork 2) • AppFuse • AraneaEclipseFacelets • Flexive • FreeMarkerGoogle Web ToolkitGrailsHamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClientSpringStripesTapestry • ThinWire • VaadinWebMacro • WebWork • WebObjects • WicketZK
JavaScript node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JSjQueryjMaki • Microsoft AJAX Library • MochiKit • MooToolsPrototype • qooxdoo • Rialto Toolkit • Ricoscript.aculo.usSmartClientSprySproutCoreYahoo! UI LibraryUnderscorePhoneGap
Perl CatalystInterchange • Titanium • Maypole • HTML:Mason
PHP Acode • Akelos • BlueShoes • CakePHP • Canvas • CodeIgniterCotonti • DIY • Drupal • Fuse • Horde • KohanaLiveStreet • PHP For Applications • PHPOpenbiz • PRADO • Qcodo • Seagull • Solar • Symfony • W3Core • YiiZend • Zoop • Joomla
Python CherryPyDjangoGAE framework • Karrigell • Nevow • Porcupine • PylonsPyramid • Spyce • TurboGearsTwistedTornado • Webware • Zope
Ruby Camping • Nitro • IOWA • Ramaze • Cerise • MerbRuby on RailsSinatra • Padrino
Прочиеязыки Alpha Five • Fusebox (ColdFusionPHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL)