beetl用于页面渲染
简介:Beetl是模板引擎,Beetl对java语言的良好支持和很好的性能
模板引擎的作用:让前端模式不变其内容改变的效率高,解决办法是将数据和格式进行分离,将一个文本分成模板和数据。模板中有固定的格式,需要动态变化的数据一般用占位符代替。同时模板引擎渲染文本的效率也会更高。
优点:功能完备,非常简单,超高的性能(消耗较低的CPU),易于整合(与各种web框架整合)
模板基础配置:https://blog.csdn.net/qq_44123730/article/details/103309758
模板资源加载器实例:https://blog.csdn.net/qq_44123730/article/details/103309200
安装:
1.Maven项目直接添加下面的依赖:
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl-framework-starter</artifactId>
<version>1.1.55.RELEASE</version>
</dependency>
用法
//初始化代码
//
StringTemplateResourceLoader resourceLoader = new StringTemplateResourceLoader();
Configuration cfg = Configuration.defaultConfiguration();
GroupTemplate gt = new GroupTemplate(resourceLoader, cfg);
//获取模板
Template t = gt.getTemplate("hello,${name}");
t.binding("name", "beetl");
//渲染结果
String str = t.render();
System.out.println(str);
基本语法:
重点:
安全输出:Beetl中,如果要输出的模板变量为null,则beetl将不做输出.
模板输出异常的情况:
有时候模板变量并不存在(譬如子模板里)
模板变量为null,但输出的是此变量的一个属性,如${user.wife.name}
解决:在变量引用后加上!以提醒beetl这是一个安全输出的变量。
标签和html标签
标签函数,即允许处理模板文件里的一块内容,功能等于同jsp tag。如Beetl内置的layout标签
//index.html
<%
layout("/inc/layout.html",{title:'主题'}){
%>
Hello,this is main part
<% } %>
//
layout.html
title is ${title}
body content ${layoutContent}
footer
//第1行变量title来自于layout标签函数的参数
//第2行layoutContent 是layout标签体{}渲染后的结果
全局变量是通过template.binding传入的变量,这些变量能在模板的任何一个地方template.binding("list",service.getUserList());
临时变量:
共享变量:指在所有模板中都可以引用的变量
通过groupTemplate.setSharedVars(Map<String, Object> sharedVars)传入变量
//.....
GroupTemplate gt = new GroupTemplate(resourceLoader, cfg);
// 设置共享变量
Map<String,Object> shared = new HashMap<String,Object>();
shared.put("name", "beetl");
gt.setSharedVars(shared);
Template t = gt.getTemplate("/org/beetl/sample/s0208/t1.txt");
String str = t.render();
System.out.println(str);
t = gt.getTemplate("/org/beetl/sample/s0208/t2.txt");
str = t.render();
System.out.println(str);
模板变量:可以将模板中任何一段的输出赋值到该变量
<%
var content = {
var c = "1234";
print(c);
%>
模板其他内容:
<% }; %>
布局技术
直接调用java代码
其他跟js相似
js语法和beetl语法的异同