首页
/ Spring Boot集成Beetl模板引擎实战指南

Spring Boot集成Beetl模板引擎实战指南

2025-07-05 03:46:41作者:庞队千Virginia

什么是Beetl模板引擎

Beetl(Beetl Template Language)是一款国产高性能模板引擎,具有语法简洁、功能强大、性能优异等特点。相比传统的JSP、Freemarker等模板引擎,Beetl在语法上更加现代化,执行效率更高,特别适合Java Web应用开发。

项目环境搭建

1. 添加依赖

在Spring Boot项目中集成Beetl非常简单,只需要在pom.xml中添加以下依赖:

<dependency>
    <groupId>com.ibeetl</groupId>
    <artifactId>beetl-framework-starter</artifactId>
    <version>1.1.63.RELEASE</version>
</dependency>

同时还需要Spring Boot Web基础依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2. 配置文件

Beetl在Spring Boot中几乎不需要额外配置,默认会自动配置模板路径等参数。我们只需要在application.yml中配置基本的Web应用参数:

server:
  port: 8080
  servlet:
    context-path: /demo

控制器实现

1. 用户登录控制器

@Controller
@RequestMapping("/user")
@Slf4j
public class UserController {
    
    // 处理登录表单提交
    @PostMapping("/login")
    public ModelAndView login(User user, HttpServletRequest request) {
        ModelAndView mv = new ModelAndView();
        mv.addObject(user);
        mv.setViewName("redirect:/");
        request.getSession().setAttribute("user", user);
        return mv;
    }
    
    // 显示登录页面
    @GetMapping("/login")
    public ModelAndView login() {
        return new ModelAndView("page/login.btl");
    }
}

2. 首页控制器

@Controller
@Slf4j
public class IndexController {

    @GetMapping(value = {"", "/"})
    public ModelAndView index(HttpServletRequest request) {
        ModelAndView mv = new ModelAndView();
        User user = (User) request.getSession().getAttribute("user");
        
        if (ObjectUtil.isNull(user)) {
            mv.setViewName("redirect:/user/login");
        } else {
            mv.setViewName("page/index.btl");
            mv.addObject(user);
        }
        
        return mv;
    }
}

模板开发

1. 登录页面模板 (login.btl)

<!doctype html>
<html lang="en">
<% include("/common/head.html"){} %>
<body>
<div id="app" style="margin: 20px 20%">
    <form action="/demo/user/login" method="post">
        用户名<input type="text" name="name" placeholder="用户名"/>
        密码<input type="password" name="password" placeholder="密码"/>
        <input type="submit" value="登录">
    </form>
</div>
</body>
</html>

2. 首页模板 (index.btl)

<!doctype html>
<html lang="en">
<% include("/common/head.html"){} %>
<body>
<div id="app" style="margin: 20px 20%">
    欢迎登录,${user.name}!
</div>
</body>
</html>

Beetl模板语法要点

  1. 变量输出:使用${表达式}语法输出变量值
  2. 模板包含:使用<% include("模板路径"){} %>语法包含其他模板
  3. 条件判断:支持if/else等条件语句
  4. 循环语句:支持for循环等迭代操作
  5. 函数调用:可以直接调用Java方法

项目结构说明

标准的Spring Boot项目结构,模板文件默认放在resources/templates目录下。本项目中模板放在resources/templates/page目录中,公共部分放在resources/templates/common目录。

开发建议

  1. 模板复用:将公共部分如头部、尾部提取为单独模板,使用include引入
  2. 安全考虑:对用户输入进行适当转义,防止XSS攻击
  3. 性能优化:Beetl本身性能优异,但复杂的模板逻辑仍可能影响性能
  4. 调试技巧:可以在开发时开启Beetl的调试模式,便于排查问题

总结

通过这个示例项目,我们学习了如何在Spring Boot中集成Beetl模板引擎,实现了基本的用户登录和页面展示功能。Beetl语法简洁明了,与Spring MVC无缝集成,是Java Web开发的优秀选择。相比传统模板引擎,Beetl在性能和开发体验上都有明显优势,值得在实际项目中尝试使用。