FreeMarker - FreeMarker
Эта статья не цитировать любой источники.Июль 2014 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчики) | Джонатан Ревуски, Аттила Сегеди, Даниэль Декани и другие |
---|---|
изначальный выпуск | 2000 |
Стабильный выпуск | 2.3.30 / 16 февраля 2020 г. |
Репозиторий | Репозиторий FreeMarker |
Написано в | Ява |
Операционная система | Кроссплатформенность |
Тип | Движок шаблонов |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | Freemarker |
FreeMarker это свободный Ява -основан шаблонизатор, изначально ориентированный на создание динамических веб-страниц с MVC программная архитектура. Однако это механизм шаблонов общего назначения, не зависящий от сервлеты или же HTTP или же HTML, и поэтому часто используется для создания исходного кода, файлов конфигурации или сообщений электронной почты.
История
Примерно до 2004 года у FreeMarker была несколько беспокойная история, вызванная сдвиги парадигмы и другие существенные изменения во многих случаях. FreeMarker 1 (теперь известный как FreeMarker Classic, отдельный проект) изначально был написан Бенджамином Гиром и Майком Байером. С 2002 года новым руководителем проекта стал Джонатан Ревуски, выпустивший FreeMarker 2, который положил начало ряду существенных изменений. Основная цель изменений заключалась в том, чтобы сделать язык шаблонов более строгим, то есть выявлять как можно больше опечаток и других типичных ошибок. Кроме того, была введена автоматическая упаковка объектов, наряду с постепенным развитием системы типов языка шаблонов. Язык получил множество функций для опытных пользователей, таких как более мощные возможности программирования макросов и пространства имен. Язык достиг вполне стабильного состояния с версией 2.3, выпущенной в третьем квартале 2004 года. По состоянию на 2016 год продукт оставался обратно совместимым. В будущем в серии FreeMarker 2 не ожидается значительных изменений, связанных с обратной несовместимостью.
В конце 2015 года FreeMarker получил Фонд программного обеспечения Apache, где он вошел в Инкубатор Apache, а в 2018-03-21 он стал полностью принятым проектом Apache.
Пример
Следующий шаблон:
<html><тело><п>Привет, $ {name}! У вас есть следующие сообщения:<# перечислить сообщения как m> <п><б>$ {m.from}:</б> $ {m.body}</п></ # список></п></тело></html>
обработанные FreeMarker выдадут что-то вроде:
<html><тело><п>Привет, Джо! У вас есть следующие сообщения: <п><б>Тим:</б> Не забудьте взять с собой материалы конференции!</п> <п><б>Синди:</б> Вы можете нанести мне визит сегодня днем?</п> <п><б>Ричард:</б> Не забудьте на этот раз бумаги!</п></п></тело></html>
Такие переменные, как «имя» и «сообщения» поступают извне шаблона, и поэтому автору шаблона приходится иметь дело только с проблемами представления. Шаблон остается неизменным независимо от того, исходят ли эти переменные из базы данных, из cookie или рассчитываются каким-либо другим способом. Также точная Java API (и, следовательно, класс) значений можно скрыть в FreeMarker с помощью техники, называемой оберткой объекта. Например, «сообщения» выглядят как список или массив JavaBeans которые имеют свойства "from" и "body", но с тем же успехом это может быть что-то совсем другое, и на шаблон это не влияет (пока используется правильная оболочка объекта).