- Apache Velocity
-
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], который теперь также является проектом с открытым исходным кодом.
См. также
- WebMacro
- FreeMarker
- xmlc
- JSP
Литература
- Роб Харроп, Ян Дарвин 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 (англ.)
- Шаблоны на java с помощью Velocity. Часть 1 (рус.)
- Шаблоны на java с помощью Velocity. Часть 2 (рус.)
- Velocity Фильтр (рус.)
Apache Software Foundation Проекты верхнего уровня ActiveMQ • Ant • Apache HTTP Server • APR • Beehive • Cassandra • Cayenne • Camel • Commons • Cocoon • CouchDB • DB • Directory • Excalibur • Forrest • Geronimo • Gump • Hadoop • Harmony • HBase • HiveMind • HttpComponents • iBATIS • Jackrabbit • James • JMeter • Lenya • Maven • Mina • mod perl • MyFaces • Nutch • OFBiz • OpenOffice.org • POI • Portals • Santuario • ServiceMix • Shale • Shiro • SpamAssassin • Struts • Subversion • Tapestry • Tcl • Tomcat • Turbine • Velocity • WebWork 2 • Wicket • Xalan • Xerces • 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 • FOP •Log4j Развивающиеся проекты (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 DotNetNuke • ASP.NET MVC • MonoRail
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
PHP Python CherryPy • Django • GAE framework • Karrigell • Nevow • Porcupine • Pylons • Pyramid • Spyce • TurboGears • Twisted • Tornado • Webware • Zope
Ruby Camping • Nitro • IOWA • Ramaze • Cerise • Merb • Ruby on Rails • Sinatra • Padrino
Прочие
языки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)
Категории:- Программное обеспечение по алфавиту
- Свободные библиотеки программ
- Проекты Apache
- Java
- Java Enterprise Edition
- Свободное программное обеспечение, написанное на Java
- Шаблонные системы
Wikimedia Foundation. 2010.