以下是一个使用 Beetl 模板引擎、Bootstrap 前端框架和 AdminLTE 管理模板的经典开发示例代码。
1. Maven 依赖配置
首先,在 Maven 项目的 pom.xml
文件中添加 Beetl、Bootstrap 和 AdminLTE 的依赖:
<dependencies>
<!-- Beetl -->
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>2.11.9</version>
</dependency>
<!-- Bootstrap -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.6.0</version>
</dependency>
<!-- AdminLTE -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>admin-lte</artifactId>
<version>2.4.18</version>
</dependency>
</dependencies>
2. Beetl 配置
在 application.properties
文件中配置 Beetl 模板引擎:
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.html
beetl.templatesPath=templates/
3. 前端页面示例
在 templates
目录下创建一个 Beetl 模板文件 index.html
:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Dashboard</title>
<!-- 引入 Bootstrap CSS -->
<link rel="stylesheet" href="/webjars/bootstrap/4.6.0/css/bootstrap.min.css">
<!-- 引入 AdminLTE CSS -->
<link rel="stylesheet" href="/webjars/admin-lte/2.4.18/dist/css/AdminLTE.min.css">
<link rel="stylesheet" href="/webjars/admin-lte/2.4.18/dist/css/skins/_all-skins.min.css">
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">
<!-- 头部 -->
<header class="main-header">
<a href="#" class="logo">
<span class="logo-mini"><b>A</b>LT</span>
<span class="logo-lg"><b>Admin</b>LTE</span>
</a>
<nav class="navbar navbar-static-top">
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
<span class="sr-only">Toggle navigation</span>
</a>
</nav>
</header>
<!-- 左侧菜单 -->
<aside class="main-sidebar">
<section class="sidebar">
<ul class="sidebar-menu" data-widget="tree">
<li class="header">MAIN NAVIGATION</li>
<li class="active">
<a href="#">
<i class="fa fa-dashboard"></i> <span>Dashboard</span>
</a>
</li>
</ul>
</section>
</aside>
<!-- 内容区域 -->
<div class="content-wrapper">
<section class="content-header">
<h1>Dashboard</h1>
</section>
<section class="content">
<div class="row">
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-aqua">
<div class="inner">
<h3>150</h3>
<p>New Orders</p>
</div>
<div class="icon">
<i class="ion ion-bag"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
</div>
</section>
</div>
</div>
<!-- 引入 jQuery -->
<script src="/webjars/jquery/3.5.1/jquery.min.js"></script>
<!-- 引入 Bootstrap JS -->
<script src="/webjars/bootstrap/4.6.0/js/bootstrap.min.js"></script>
<!-- 引入 AdminLTE JS -->
<script src="/webjars/admin-lte/2.4.18/dist/js/adminlte.min.js"></script>
</body>
</html>
4. 控制器
创建一个简单的 Spring Boot 控制器来渲染该页面:
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class DashboardController {
@GetMapping("/dashboard")
public String dashboard(Model model) {
return "index";
}
}
这样,就完成了一个使用 Beetl、Bootstrap 和 AdminLTE 的经典开发模式的简单示例。
Bootstrap 和 AdminLTE
Bootstrap 和 AdminLTE 是前端样式库,你也可以直接在 HTML 中通过 CDN 引用它们,而不一定要通过 Maven 引入。下面是如何通过 CDN 引用它们的示例:
1. 引入 Bootstrap 和 AdminLTE
在你的 index.html
文件中,通过 CDN 引用 Bootstrap 和 AdminLTE:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Dashboard</title>
<!-- 引入 Bootstrap CSS -->
<link rel="stylesheet" href="<https://maxcdn.bootstrapcdn.com/bootstrap/4.6.0/css/bootstrap.min.css>">
<!-- 引入 AdminLTE CSS -->
<link rel="stylesheet" href="<https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.4.18/css/AdminLTE.min.css>">
<link rel="stylesheet" href="<https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.4.18/css/skins/_all-skins.min.css>">
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">
<!-- 头部 -->
<header class="main-header">
<a href="#" class="logo">
<span class="logo-mini"><b>A</b>LT</span>
<span class="logo-lg"><b>Admin</b>LTE</span>
</a>
<nav class="navbar navbar-static-top">
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
<span class="sr-only">Toggle navigation</span>
</a>
</nav>
</header>
<!-- 左侧菜单 -->
<aside class="main-sidebar">
<section class="sidebar">
<ul class="sidebar-menu" data-widget="tree">
<li class="header">MAIN NAVIGATION</li>
<li class="active">
<a href="#">
<i class="fa fa-dashboard"></i> <span>Dashboard</span>
</a>
</li>
</ul>
</section>
</aside>
<!-- 内容区域 -->
<div class="content-wrapper">
<section class="content-header">
<h1>Dashboard</h1>
</section>
<section class="content">
<div class="row">
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-aqua">
<div class="inner">
<h3>150</h3>
<p>New Orders</p>
</div>
<div class="icon">
<i class="ion ion-bag"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
</div>
</section>
</div>
</div>
<!-- 引入 jQuery -->
<script src="<https://code.jquery.com/jquery-3.5.1.min.js>"></script>
<!-- 引入 Bootstrap JS -->
<script src="<https://maxcdn.bootstrapcdn.com/bootstrap/4.6.0/js/bootstrap.min.js>"></script>
<!-- 引入 AdminLTE JS -->
<script src="<https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.4.18/js/adminlte.min.js>"></script>
</body>
</html>
通过这种方式,可以直接从 CDN 加载 Bootstrap 和 AdminLTE,而不需要在 Maven 中引入它们的依赖。
Beetl
Beetl 支持多种模板文件扩展名,常见的包括:
.btl
.html
.txt
.xml
具体支持哪些扩展名可以根据项目配置来决定。