Apache FreeMarker — это механизм шаблонов: библиотека Java для генерации текстового вывода (HTML-страницы, xml, файлы конфигурации, исходный код и.т.д. На вход подается шаблон, например html в котором есть специальные выражения, подготавливаются данные соответствующие этим выражением, а Freemarker динамически вставляет эти данные и получается динамически заполненный документ.
Читать полностью »
Рубрика «freemarker»
GitHub Pages для сайта-визитки на 8 марта
2017-03-08 в 9:17, admin, рубрики: freemarker, github, github pages, java, maven, maven-scm-publish-plugin, mvn-classloader, open source, Программирование, системы сборкиЧто такое HTML, CSS, JavaScript и Bootstrap фреймворк сложно объяснять человеку который далек от IT. А что если нужен сайт на бесплатном хостинге, без привязки к онлайн конструкту именно этого хостинга!?
Как думаете, реально научить девушку обновлять свой сайт на GitHub Pages к Международному женскому дню!? Расскажу как мне это удалось с помощью генератора сайта, который доступен на Github и написан на Java + FreeMarker, к тому же старался автоматизировать публикацию контента в git репозитарий.
Читать полностью »
Тотальная шаблонизация
2016-01-12 в 10:43, admin, рубрики: android development, android studio, freemarker, java, Блог компании REDMADROBOT, разработка мобильных приложений, Разработка под androidКогда собаке программисту нечего делать, он начинает все автоматизировать. Мне по роду своей деятельности приходится писать много кода и, конечно, хочется какие-то повторяющие вещи обобщить в виде библиотек, скриптов или шаблонов для Android Studio. О них и поговорим.
Кодогенерация в Oracle и не только
2015-03-27 в 1:38, admin, рубрики: freemarker, ftldb, java, jdbc, oracle, PL/SQL, sql, template engine, Блог компании CUSTIS, генерация кода, кодогенерация, разработка, шаблонизацияВ этой статье я расскажу о решении проблемы кодогенерации при разработке приложений для СУБД Oracle. Хотя написанное ниже можно частично применить и к другим СУБД, и для генерации не только кода.
Проблема
При разработке приложений иногда возникают ситуации, когда требуется написать много похожих кусков кода, которые в силу различных ограничений нельзя заменить одной универсальной программной единицей. Следуя принципу DRY, вместо того чтобы копировать похожие фрагменты кода вручную с заменой отличающихся частей, лучше воспользоваться техникой кодогенерации из статичных заготовок на основе метаданных, вносящих разнообразие в получившиеся экземпляры кода. К кодогенерации приходится прибегать как в develop/deploy-time (когда все вариации известны заранее и есть возможность создать весь спектр экземпляров кода в статичном виде), так и в runtime, когда код генерируется на основе неизвестных заранее данных и сразу же исполняется.
Специфика кодогенерации при разработке приложений для СУБД состоит в том, что метаданные, как правило, хранятся в ней же.
Приведу несколько примеров задач, в которых востребована кодогенерация:
- формирование SQL/DML/DDL-выражений на основе пользовательского выбора;
- создание процедуры загрузки в систему-приемник очередного источника данных по его метаописанию в удаленной (remote) системе-источнике;
- разворачивание системы в разных окружениях, версиях и редакциях СУБД, где необходимо (де)активировать некоторые опции или создать вспомогательные объекты: например, при разворачивании Oracle-приложения на редакции EE секционировать таблицы и строить локальные индексы; или при разворачивании на версии Oracle ниже 11 вместо виртуальных колонок и индексов по ним создавать представления-обертки с дополнительными вычислимыми колонками и строить function-based-индексы.
Node.js vs Java + Rhino + Jetty + FreeMarker
2013-06-14 в 10:02, admin, рубрики: freemarker, java, javascript, jetty, rhino, метки: freemarker, javascript, jetty, rhino
Хоть Node.js и обзавелся с момента своего появления множеством модулей, он все еще существенно уступает по возможностям мощному набору библиотек Java. Так отчего бы не воспользоваться потенциалом Java для разработки web-приложений на JavaScript? Давайте посмотрим, как можно построить удобный JavaScript MVC framework на Java.
Mozilla Rhino
Прежде всего, начнем с носорогов. Для компиляции/интерпретации JavaScript будем использовать движок Mozilla Rhino, обеспечивающий отличную интеграцию кода ECMAScript в Java-приложения. Начиная с J2SE 6 Rhino включается в JRE в составе Java Scripting API, однако версия в JRE значительно устаревшая и, кроме того, с некоторыми неприятными особенностями реализации от Sun, поэтому лучше воспользоваться свежим build-ом.
Прежде всего, helloworld.js
:
print('Hey you!');
Предполагая, что библиотеки Rhino распакованы в ./lib
, запускаем пример следующим образом:
java -Djava.ext.dirs=./lib org.mozilla.javascript.tools.shell.Main helloworld.js
Наследуемые шаблоны в FreeMarker
2012-08-25 в 17:37, admin, рубрики: freemarker, templating, web, Веб-разработка, Программирование, метки: freemarker, templating, webFreeMarker — достаточно известный шаблонизатор на Java. Сразу оговорюсь, что обсуждать его сильные или слабые стороны не буду. Так сложилось, что мне он пришелся, что называется «по душе» и, можно даже сказать, «пошел в руку». В общем, часто вспоминаю о нем, когда возникает задача генерации текста на основе шаблонов. В основном, конечно, это касается его родной среды — генерации веб страниц. Впрочем, в сочетании, с FMPP и не только веб-страниц.
Тем, кто разрабатывает под ASP.NET хорошо знакома техника создания страниц на основе наследуемых шаблонов, когда в наследниках переопределяются или добавляются определенные блоки страницы, а сами шаблоны могут создавать иерархию. Впрочем, понятно, что идея далеко не новая и интуитивно понятная.
На уровне Java кода, эта задача для FreeMarker прекрасно уже решена. Но вот было стойкое ощущение, что почти то же самое можно сделать и не выходя за его базовые рамки, т.е. использовать в том же FMPP. И, действительно, решение получилось вполне компактным. Хотя и несколько искусственным.
Читать полностью »