WebMacro

Из Википедии, бесплатной энциклопедии

WebMacro
Тип Шаблонизатор
Разработчик SourceForge
Написана на Java
Операционная система Кроссплатформенное ПО
Последняя версия 2.2 (25 февраля 2010)
Лицензия BSD
Сайт webmacro.sourceforge.net

WebMacro — фреймворк предназначенный для разработки сервлетов. Фреймворк реализует шаблон проектирования Model-View-Controller, обеспечивая чистое разделение ответственностей, а именно WebMacro, обеспечивает чистое отделение исходного кода проекта от HTML-кода представления.

WebMacro – распространяется как проект с открытым исходным кодом.

WebMacro первоначально создавался и разрабатывался Джастином Уэллсом из Semiotek Inc., в середине 2000 года проект был принят командой в SourceForge.

Кроме того, WebMacro, может использоваться для генерации произвольного текстового вывода на основе шаблона (один из способов такого использования является автоматизированная генерация кода).

Шаблонный язык очень похож на язык, используемый в Apache Velocity, а также имеется автоматизированный скрипт, выполняющий миграцию.

Пример кода[править | править код]

Пример использования шаблона, и простого Java приложения. Исходный текст шаблона с именем search.view

  <html><head><title>Search Results</title></head>   <body>   <h1>Here are the results for $query:</h1>   <table>   #foreach $result in $results {     <tr><td>$result.Number</td>     <td><a href="$result.Link">$result.Name</a></td></tr>   }   </table>   </body></html> 

Символ «$» определяет, что за ним в шаблоне следует имя переменной.

Сокращенный пример Java-кода использующего WebMacro:

   WebMacro wm = new WM(); // вероятно, будет создан только однажды в Вашем сервлете    FastWriter out = wm.getFastWriter (outStream, "UTF8"); // создаётся FastWriter с кодированием UTF8     Context c = wm.getContext();  // производится в каждом запросе     c.put("query", queryString);  // помещает обычный Java объект, в данном случае строку    Result[] res = ...;           // некоторые данные предназначенные для вывода: возможно результаты поиска.    c.put("results", res);        // размещение объекта в контексте     Template t = wm.getTemplate("search.view");    t.write(out, c);    out.flush(); 

См. также[править | править код]

Ссылки[править | править код]