Метка «freemarker»

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