Перейти к содержанию

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();

См. также

Ссылки