Из Википедии, бесплатной энциклопедии
  (Перенаправлено с Apache 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