FreeMarker
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2014 г. ) |
![]() | |
Разработчик(и) | Джонатан Ревуски, Аттила Сегеди, Даниэль Декани и другие. |
---|---|
Первоначальный выпуск | 2000 |
Стабильная версия | 2.3.33
/ 1 июня 2024 г |
Репозиторий | github |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | Шаблонизатор |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | свободный маркер |
Apache FreeMarker — это бесплатный Java на основе механизм шаблонов , изначально ориентированный на генерацию динамических веб-страниц с использованием MVC программной архитектуры . Теперь он может генерировать текст на основе шаблонов и изменяющихся данных. [ 1 ] Он не зависит от сервлетов , HTTP или HTML . [ 2 ]
Его часто используют для создания исходного кода, файлов конфигурации или электронных писем.
История
[ редактировать ]Примерно до 2004 года у FreeMarker была довольно беспокойная история, вызванная сменой парадигмы неоднократной и другими значительными изменениями. FreeMarker 1 (теперь известный как FreeMarker Classic, отдельный проект) изначально был написан Бенджамином Гиром и Майком Байером. С 2002 года новым руководителем проекта стал Джонатан Ревуски, выпустивший FreeMarker 2, положивший начало серии нескольких существенных изменений. Основная цель изменений заключалась в том, чтобы сделать язык шаблонов более строгим, т.е. выявить как можно больше опечаток и других типичных ошибок. Кроме того, была введена автоматическая упаковка объектов и постепенное развитие системы типов языка шаблонов. Язык приобрел множество функций для опытных пользователей, таких как более мощные возможности программирования макросов и пространства имен. Язык достиг вполне устоявшегося состояния с версией 2.3, выпущенной в третьем квартале 2004 года. По состоянию на 2022 год продукт сохранил обратную совместимость. В будущем в серии FreeMarker 2 не ожидается существенных изменений, несовместимых с предыдущими версиями.
В конце 2015 года FreeMarker был передан Apache Software Foundation , где он вошел в инкубатор Apache, а в 2018-03-21 он стал полностью принятым проектом Apache.
Пример
[ редактировать ]Следующий шаблон:
<html>
<body>
<p>Hello ${name}! You have the following messages:
<#list messages as m>
<p><b>${m.from}:</b> ${m.body}</p>
</#list>
</p>
</body>
</html>
обработанный FreeMarker, выдаст что-то вроде:
<html>
<body>
<p>Hello Joe! You have the following messages:
<p><b>Tim:</b> Please don't forget to bring the conference papers!</p>
<p><b>Cindy:</b> Can you give me a visit this afternoon?</p>
<p><b>Richard:</b> Don't forget the papers this time!</p>
</p>
</body>
</html>
Такие переменные, как «имя» и «сообщения», поступают извне шаблона, поэтому автору шаблона приходится иметь дело только с проблемами представления. Шаблон остается неизменным независимо от того, берутся ли эти переменные из базы данных, из файла cookie или рассчитываются каким-либо другим способом. Кроме того, точный Java API (и, следовательно, класс) значений можно скрыть в FreeMarker с помощью метода, называемого переносом объектов. Например, «сообщения» кажутся списком или массивом JavaBeans , имеющим свойства «from» и «body», но с таким же успехом это может быть что-то совсем другое, и шаблон не затрагивается (пока правильная оболочка объекта используется).
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Кардоса, Кристина (27 марта 2017 г.). «Обновлены Apache Calcite, FreeMarker, Gora, Phoenix и Solr» . СД Таймс . Проверено 5 февраля 2024 г.
- ^ Миттапалли, Джишну Саурав; Артур, Менака Пушпа (2021). «Обзор шаблонизаторов в Java». Сеть конференций ITM . 37 . EDP Science: 01007.doi 10.1051/ itmconf : /20213701007 . ISSN 2271-2097 .