1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/sub-jetbrick-template

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 6.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 06:42 caf737d

Обзор

Jetbrick-template — это новое поколение Java-шаблонизаторов, обладающее высокой производительностью и расширяемостью. Подходит для динамического вывода HTML-страниц или генерации кода, может заменить JSP-страницы или шаблоны Velocity. Синтаксис похож на Velocity, а выражения соответствуют Java, что делает его лёгким в изучении и использовании.

  • Поддерживает различные команды, аналогичные Velocity;
  • поддерживает статическую компиляцию;
  • поддерживает кэширование компиляции;
  • поддерживает горячую загрузку;
  • поддерживает вывод типов;
  • поддерживает обобщённые типы;
  • поддерживает вызовы методов с переменным числом аргументов;
  • поддерживает перегрузку методов;
  • поддерживает расширение методов, подобное Groovy;
  • поддерживает расширения функций;
  • поддерживает пользовательские теги #tag;
  • поддерживает макроопределения #macro;
  • поддерживает макеты Layout.

Документация

http://subchen.github.io/jetbrick-template/

Простые и удобные команды

Синтаксис Jetbrick-template похож на набор команд старых шаблонизаторов Velocity и лёгок в освоении.

#define(List<UserInfo> userlist)
<table>
  <tr>
    <td>序号</td>
    <td>姓名</td>
    <td>邮箱</td>
  </tr>
  #for (UserInfo user : userlist)
  <tr>
    <td>${for.index}</td>
    <td>${user.name}</td>
    <td>${user.email}</td>
  </tr>
  #end
</table>

Основные API разработки

  1. Создайте объект конфигурации JetEngine с помощью шаблона singleton.
  2. Получите шаблонный объект JetTemplate по пути к шаблону.
  3. Создайте экземпляр Map<String, Object> и добавьте свои объекты данных.
  4. Подготовьте объект для вывода, например OutputStream или Writer.
  5. Визуализируйте шаблон на основе ваших объектов данных и получите результат вывода.

Конкретный код на Java выглядит следующим образом:

// Создаём экземпляр JetEngine по умолчанию
JetEngine engine = JetEngine.create(); 

// Получаем шаблонный объект
JetTemplate template = engine.getTemplate("/sample.jetx");

// Создаем объект контекста
Map<String, Object> context = new HashMap<String, Object>();
context.put("user", user);
context.put("books", books);

// Визуализируем шаблон
StringWriter writer = new StringWriter();
template.render(context, writer);

// Выводим результат
System.out.println(writer.toString());

Превосходная производительность

Jetbrick-template компилирует шаблоны в байт-код Java и использует вывод типов, избегая отражения и уменьшая необходимость преобразования типов. Скорость рендеринга эквивалентна жёстко запрограммированному коду на Java. Это значительно быстрее, чем Velocity и другие шаблонизаторы, поскольку JSP только Scriptlet компилируется, а Tag и EL интерпретируются и выполняются. В то время как Jetbrick-template полностью компилируется.

На рисунке показана сравнительная диаграмма производительности.

В режиме потока (Webapp использует OutputStream для вывода текста в браузер), поскольку жёстко закодированный вывод строки Java требует однократного преобразования кодировки. Однако Jetbrick-template кэширует результаты преобразования кодировки после первого запуска, делая производительность Jetbrick-template даже лучше, чем у жёстко закодированного кода Java.

Тестовая платформа: Windows 7 x64, Intel i5, 16 ГБ ОЗУ, JDK 1.6.0_41 x64.

Автор

Лицензия с открытым исходным кодом

jetbrick-template http://subchen.github.io/jetbrick-template/

Copyright 2010–2014 Guoqiang Chen. Все права защищены. Email: subchen@gmail.com

Лицензия Apache версии 2.0 («Лицензия»); вы не можете использовать этот файл, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу:

http://www.apache.org/licenses/LICENSE-2.0

Если это не требуется применимым законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, предоставляется «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО ВИДА, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующего разрешения и ограничения в рамках Лицензии.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/sub-jetbrick-template.git
git@api.gitlife.ru:oschina-mirror/sub-jetbrick-template.git
oschina-mirror
sub-jetbrick-template
sub-jetbrick-template
master