Рубрика «freemarker»

в 4:27, , рубрики: freemarker, html, java

Apache FreeMarker — это механизм шаблонов: библиотека Java для генерации текстового вывода (HTML-страницы, xml, файлы конфигурации, исходный код и.т.д. На вход подается шаблон, например html в котором есть специальные выражения, подготавливаются данные соответствующие этим выражением, а Freemarker динамически вставляет эти данные и получается динамически заполненный документ.
image
Читать полностью »

Что такое HTML, CSS, JavaScript и Bootstrap фреймворк сложно объяснять человеку который далек от IT. А что если нужен сайт на бесплатном хостинге, без привязки к онлайн конструкту именно этого хостинга!?

GitHub Pages для сайта-визитки на 8 марта - 1

Как думаете, реально научить девушку обновлять свой сайт на GitHub Pages к Международному женскому дню!? Расскажу как мне это удалось с помощью генератора сайта, который доступен на Github и написан на Java + FreeMarker, к тому же старался автоматизировать публикацию контента в git репозитарий.
Читать полностью »

Тотальная шаблонизация - 1

Когда собаке программисту нечего делать, он начинает все автоматизировать. Мне по роду своей деятельности приходится писать много кода и, конечно, хочется какие-то повторяющие вещи обобщить в виде библиотек, скриптов или шаблонов для Android Studio. О них и поговорим.

Читать полностью »

В этой статье я расскажу о решении проблемы кодогенерации при разработке приложений для СУБД Oracle. Хотя написанное ниже можно частично применить и к другим СУБД, и для генерации не только кода.

Проблема

При разработке приложений иногда возникают ситуации, когда требуется написать много похожих кусков кода, которые в силу различных ограничений нельзя заменить одной универсальной программной единицей. Следуя принципу DRY, вместо того чтобы копировать похожие фрагменты кода вручную с заменой отличающихся частей, лучше воспользоваться техникой кодогенерации из статичных заготовок на основе метаданных, вносящих разнообразие в получившиеся экземпляры кода. К кодогенерации приходится прибегать как в develop/deploy-time (когда все вариации известны заранее и есть возможность создать весь спектр экземпляров кода в статичном виде), так и в runtime, когда код генерируется на основе неизвестных заранее данных и сразу же исполняется.

Специфика кодогенерации при разработке приложений для СУБД состоит в том, что метаданные, как правило, хранятся в ней же.

Приведу несколько примеров задач, в которых востребована кодогенерация:

  • формирование SQL/DML/DDL-выражений на основе пользовательского выбора;
  • создание процедуры загрузки в систему-приемник очередного источника данных по его метаописанию в удаленной (remote) системе-источнике;
  • разворачивание системы в разных окружениях, версиях и редакциях СУБД, где необходимо (де)активировать некоторые опции или создать вспомогательные объекты: например, при разворачивании Oracle-приложения на редакции EE секционировать таблицы и строить локальные индексы; или при разворачивании на версии Oracle ниже 11 вместо виртуальных колонок и индексов по ним создавать представления-обертки с дополнительными вычислимыми колонками и строить function-based-индексы.

Читать полностью »

Node.js vs Java + Rhino + Jetty + FreeMarker
Хоть 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 — достаточно известный шаблонизатор на Java. Сразу оговорюсь, что обсуждать его сильные или слабые стороны не буду. Так сложилось, что мне он пришелся, что называется «по душе» и, можно даже сказать, «пошел в руку». В общем, часто вспоминаю о нем, когда возникает задача генерации текста на основе шаблонов. В основном, конечно, это касается его родной среды — генерации веб страниц. Впрочем, в сочетании, с FMPP и не только веб-страниц.

Тем, кто разрабатывает под ASP.NET хорошо знакома техника создания страниц на основе наследуемых шаблонов, когда в наследниках переопределяются или добавляются определенные блоки страницы, а сами шаблоны могут создавать иерархию. Впрочем, понятно, что идея далеко не новая и интуитивно понятная.

На уровне Java кода, эта задача для FreeMarker прекрасно уже решена. Но вот было стойкое ощущение, что почти то же самое можно сделать и не выходя за его базовые рамки, т.е. использовать в том же FMPP. И, действительно, решение получилось вполне компактным. Хотя и несколько искусственным.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js