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();
См. также
[править | править код]Ссылки
[править | править код]- Официальный сайт Архивная копия от 2 сентября 2011 на Wayback Machine (англ.)
 - Сравнение обработчиков шаблонов для Java Архивная копия от 14 ноября 2012 на Wayback Machine (англ.)