typora-root-url |
---|
../beetl3.0 |
______ _________ _____
|_ _ \ | _ _ ||_ _|
| |_) | .---. .---.|_/ | | \_| | |
| __'. / /__\\/ /__\\ | | | | _
_| |__) || \__.,| \__., _| |_ _| |__/ |
|_______/ '.__.' '.__.' |_____| |________|
iBeetl.com © 2010 ~ 2024, популярный шаблонизатор в Китае
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.19.0.RELEASE</version>
</dependency>
http://ibeetl.com/beetlonline/
Определение переменных и выражений аналогично JavaScript, при этом поддерживаются типы данных.
#: var a = 1, isCheck = false;
#: var<String> list = getString(); // объявление типа
<h1>Привет ${a}</h1>
Поддерживает различные конструкции циклов, такие как if, for, while, а также поддерживает elsefor после for.
#: var array = getData();
#: for(var item in array){
<h1>${itemLP.index}:${item}</h1>
#:} elsefor {
<h1>пусто</h1>
#:}
Например, использование <%
и %>
вместо #:
и перенос строки. Beetl позволяет использовать свои собственные границы и заполнители.
<% var array = [1,2,3];
for(var k in array){ %>
<h1>#{kLP.index}:#{k}</h1>
<% } %>
${call(1)}
${date(), "yyyy-MM-dd"}
Можно вызывать Java методы, которые могут быть безопасно использованы.
${@myList.size()}
Поддерживает не только скрипты, но и HTML теги.
<my:tag aa = "1">hello<\my:tag>
<my:setTag attr = "1" var="b,c">${b},${c}<\my:setTag>
Поддерживает различные макеты.
# var page = "/common.html";
#: include(page, {"title": "Управление пользователя"}){}
Можно использовать Beetl как скриптовый движок, который имеет богатые возможности и отличную производительность.
var a = 1;
return a + b;
Можно запретить любой синтаксис, чтобы сделать шаблон проще и чище. Например, можно запретить операторы присваивания или сложные выражения.
# var a = 1; // запрещено
${a}
Можно легко получить структуру шаблона через настраиваемый движок. Например, можно получить информацию о том, что шаблон требует внешнего входа a, использует переменные a и c, и вызывает метод date.
#: var c = 1, d = date();
${a}, ${c}
Приложения PaaS требуют ограничения количества отрисовок шаблонов, чтобы избежать зависаний JVM. Например, можно запретить выполнение цикла while более одного раза.
#: while(true){
<h1>Привет</h1>
#:}
Beetl 3.0, перенесённый с https://github.com/javamonkey/beetl2.0/
QQ группы для общения: 636321496 (полностью), 219324263 (полностью), 252010126
Официальный сайт: ibeetl.com
Количество обработанных запросов в секунду, чем больше score, тем лучше.
Beetl > Enjoy >> Rocker > Freemarker >> Thymeleaf == Velociy
Benchmark Mode Cnt Score Error Units
Beetl.benchmark thrpt 5 109547.863 ± 17161.576 ops/s
BeetlByte.benchmark thrpt 5 237799.769 ± 5904.514 ops/s
Enjoy.benchmark thrpt 5 99695.440 ± 14083.595 ops/s
EnjoyByte.benchmark thrpt 5 223874.001 ± 7265.307 ops/s
Freemarker.benchmark thrpt 5 41452.634 ± 15917.119 ops/s
Handlebars.benchmark thrpt 5 40360.198 ± 24345.048 ops/s
Rocker.benchmark thrpt 5 63657.017 ± 4653.265 ops/s
Thymeleaf.benchmark thrpt 5 6457.169 ± 272.613 ops/s
Velocity.benchmark thrpt 5 8024.042 ± 2097.396 ops/s
WastEl >> Liquor >> JfireEL = Spel >> Aviator = Beetl = Magic = Jexl3 >> Mvel = Groovy >> Nashorn
Онлайн отладка и выполнение Beetl скрипта http://ibeetl.com/beetlonline/script.html
Benchmark Mode Cnt Score Error Units
Aviator.forExpresss thrpt 5 501300.085 ± 42824.080 ops/s
Aviator.ifExpresss thrpt 5 3787821.461 ± 126020.429 ops/s
Aviator.simpleExpress thrpt 5 3936340.996 ± 73374.389 ops/s
Beetl.forExpresss thrpt 5 1338770.299 ± 52497.190 ops/s
Beetl.ifExpresss thrpt 5 4296662.629 ± 144833.816 ops/s
Beetl.reflect thrpt 5 91948.475 ± 24820.670 ops/s
Beetl.simpleExpress thrpt 5 3637048.580 ± 208029.652 ops/s
Groovy.forExpresss thrpt 5 252549.783 ± 4250.116 ops/s
Groovy.ifExpresss thrpt 5 274622.265 ± 4591.017 ops/s
Groovy.simpleExpress thrpt 5 265044.153 ± 11326.922 ops/s
Jexl3.forExpresss thrpt 5 786773.898 ± 10419.682 ops/s
Jexl3.ifExpresss thrpt 5 4202306.490 ± 30129.805 ops/s
Jexl3.simpleExpress thrpt 5 3372108.774 ± 215486.204 ops/s
JfireEL.ifExpresss thrpt 5 32117578.964 ± 527020.236 ops/s
JfireEL.simpleExpress thrpt 5 24189543.412 ± 368783.395 ops/s
Liquor.forExpresss thrpt 5 133415280.514 ± 7403665.267 ops/s
Liquor.ifExpresss thrpt 5 142671515.534 ± 2569369.295 ops/s
Liquor.simpleExpress thrpt 5 131626067.420 ± 1391417.428 ops/s
Magic.forExpresss thrpt 5 78293.797 ± 5757.270 ops/s
Magic.ifExpresss thrpt 5 8289531.268 ± 108521.742 ops/s
Magic.simpleExpress thrpt 5 5483078.794 ± 102774.920 ops/s
Mvel.forExpresss thrpt 5 19791.976 ± 913.688 ops/s
Mvel.ifExpresss thrpt 5 212241.434 ± 4588.556 ops/s
Mvel.simpleExpress thrpt 5 289372.025 ± 5343.856 ops/s
Spel.ifExpresss thrpt 5 17001870.991 ± 1104612.166 ops/s
Spel.simpleExpress thrpt 5 16854500.373 ± 1020142.253 ops/s
WastEl.forExpresss thrpt 5 539086848.932 ± 16033762.932 ops/s
WastEl.ifExpresss thrpt 5 553963092.029 ± 8708085.274 ops/s
WastEl.simpleExpress thrpt 5 493929991.021 ± 7826211.390 ops/s
Основные функции Beetl 3
Часть 1. Основные функции
1.1 Установка
1.2 Быстрый старт
1.3 Базовая конфигурация шаблонов
1.4 Загрузчики шаблонов
1.5 Границы и заполнители
1.6 Комментарии
1.7 Определение переменных
1.8 Атрибуты
1.9 Математические выражения
1.10 Циклы
1.11 Условия
1.12 Исключения
1.13 Виртуальные атрибуты
1.14 Вызовы функций
1.15 Безопасное выведение (важно)
1.16 Форматирование вывода
1.17 Теги
1.18 Вызовы методов и атрибутов Java
1.19 Строгий MVC контроль
1.20 Инструкции
1.21 Обработка ошибок
1.22 Мелкие утилиты Beetl
1.23 Escape
Часть 2. Расширенные функции
2.1 Конфигурация GroupTemplate
2.2 Самостоятельное определение методов
2.3 Самостоятельное определение функций форматирования
2.4 Самостоятельное определение тегов
2.5 Самостоятельное определение виртуальных атрибутов
2.6 Использование дополнительных загрузчиков ресурсов
2.7 Самостоятельное определение загрузчиков ресурсов
2.8 Использование CompositeResourceLoader
2.9 Самостоятельное определение обработчиков ошибок
2.10 Самостоятельное определение менеджеров безопасности
2.11 Регистрация глобальных переменных
2.12 Самостоятельное определение макетов
2.13 Оптимизация производительности
2.14 Самостоятельное определение вывода
2.15 Самостоятельное определение шаблонизатора
2.16 Непосредственное выполнение Beetl скриптов
2.17 Валидация шаблонов
Часть 3. Интеграция веб-приложений
3.1 Глобальные переменные веб-приложений
3.2 Интеграционные руководства построения
3.3 Интеграция Servlet
3.4 Интеграция SpringMVC
3.5 Интеграция Spring Boot
3.6 Интеграция Jodd
3.7 Интеграция JFinal4
3.8 Интеграция Nutz
3.9 Интеграция Struts2
3.10 Интеграция AJAX частичного рендера
3.11 Отображение сообщений об ошибках на страницах
for {} elsefor {}
, безопасное выведение, сокращенный тернарный оператор и другиеЛюбая компания или человек может бесплатно использовать Beetl и получать бесплатную техническую поддержку от сообщества, форума, QQ группы и автора. Для получения платной технической поддержки, пожалуйста, свяжитесь с нами через WeChat (lliijjzz), указав "платная техническая поддержка".
При внесении своего вклада в проект, пожалуйста, следуйте нижеуказанным базовым нормам:
Пример норм комментариев
/*
版权声明部分
*/
package org.beetl.core.cache;
import java.util.function.Function;
/**
* Кэш стандартного интерфейса, каждый метод должен быть поточно-безопасным
*
* @author xiandafu
* @since 2020-09-21
*/
public interface Cache {
/** Лог TAG */
String TAG = "Cache";
/**
* Получает значение по ключу из кэша
*
* @param key Ключ, может быть null
* @return Значение, соответствующее ключу, может быть null
*/
Object get(Object key);
/**
* Получает значение по ключу из кэша; если значение равно null, то выполняется {@code function#apply},
* результат которого добавляется в кэш и возвращается
*
* @param key Ключ, может быть null
* @param function Функция, которая будет выполнена, если значение по ключу равно null
* @return Результат выполнения {@code function#apply}, добавленный в кэш
*/
Object get(Object key, Function<Object, Object> function);
}
Пример git коммита
# git commit информация должна содержать [версию] + [модуль] + [информацию]
# Например, текущая версия org.beetl.express.Beetl — это 3.2.0,
# и изменение относится к "комментариям узлов дерева",
# тогда коммит информации будет таким:
git commit -m '【Sprint3.3.0】【org.beetl.express.Beetl】комментарии узлов дерева'
Развитие Beetl невозможно без помощи следующих людей (порядок не важен):
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )