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