Beetl是什么?
Beetl是一款国产模板引擎,据说渲染速度是JSP的2倍,FreeMaker的6倍,Thymeleaf的???倍?但是为什么官方API我看的不是很懂- -!反正不管怎样,先玩玩再看
官网 传送门
依赖
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl-framework-starter</artifactId>
<version>1.1.41.RELEASE</version>
</dependency>
starter 自动处理以btl结尾的视图,模板根目录是Spring Boot默认的templates目录。如下配置可以修改beetl部分属性
配置Config
类
@Configuration
public class BeetlConf {
@Bean(initMethod = "init", name = "beetlConfig")
public BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {
BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();
ResourcePatternResolver patternResolver = ResourcePatternUtils
.getResourcePatternResolver(new DefaultResourceLoader());
try {
WebAppResourceLoader cploder = new WebAppResourceLoader(patternResolver.getResource("/templates").getFile().getPath());
beetlGroupUtilConfiguration.setResourceLoader(cploder);
return beetlGroupUtilConfiguration;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Bean(name = "beetlViewResolver")
public BeetlSpringViewResolver getBeetlSpringViewResolver(@Qualifier("beetlConfig") BeetlGroupUtilConfiguration beetlGroupUtilConfiguration) {
BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
beetlSpringViewResolver.setPrefix("/");
beetlSpringViewResolver.setSuffix(".html");
beetlSpringViewResolver.setOrder(0);
beetlSpringViewResolver.setConfig(beetlGroupUtilConfiguration);
return beetlSpringViewResolver;
}
}
在application.yml
中配置模板根目录和禁用BeetlSQL
RESOURCE:
root: /WEB-INF/templates
beetlsql:
enabled: false
基本用法
- 界定符和占位符
使用<%
%>
作为界定符,如直接输出后台传过来的数据即为<% user.name %>
占位符和其它模板一样${}
- 安全输出(非空判断)
个人感觉非常好用的安全输出,只需在输出变量时加个感叹号即可,如果目标为空即不输出,而不是报错${ basePath! }
- 简单的循环
<select name="categoryId" id="categoryId" lay-filter="category" lay-search>
<option value="">图书分类</option>
<% for(category in bookCategory){ %>
<option value=${category.id}>${category.name}</option>
<% } %>
</select>
- if-else判断
<%
var a =true;
var b = 1;
if(a&&b==1){
}else if(a){
}else{
}
%>