Voyager 与其他模板引擎如 FreeMarker、Thymeleaf 一样,实现动态数据在页面端的呈现,但 Voyager 更简单和直接且功能更强大。Voyager 需要运行在 Spring Boot 环境下,适用于非前后端分离的项目(前后端分离的项目可使用 OneApi 统一接口开发数据接口)。Master 数据管理平台 项目所有页面都使用 Voyager 开发。
Voyager 基于嵌入式 PQL 实现,下面是一个简单的遍历数据的例子:
像写 Jsp 或 php 一样将服务器端逻辑和页面逻辑写在一起,但是服务器端代码使用 PQL,使用 <%` 和 `%>
将服务器端代码包围起来(同 Jsp、Asp 等)。Voyager 基于嵌入式 PQL 实现,支持所有的 PQL 语法规则。PQL 是一种简单极致的数据处理语言,详见 PQL 文档。
Voyager 负责在页面第一次加载时计算并呈现页面数据和内容,之后的与服务器的交互操作可通过 Javascript 和 OneApi 实现,更简单的接口开发方式请参见 OneApi 文档。
因为可以在页面上直接访问数据库,所以不再需要在 Controller 中通过 Model 向前端页面传递数据,减少了大量的后端逻辑。当然,Voyager 仍然可以接收并通过变量的方式处理Model 传递的数据。
上面示例中基本已经包含了 Voyager 的所有语法,即通过 <%` 和 `%>
包围服务器端语句,通过#
和#
包围多语言标签。详见Voyager语法规则。
支持预先定义的模板,并在此模板基础上进行快速开发,开发出来的页面可具有统一的风格或布局。详见Voyager 母版页
不仅支持 Html 格式的页面文件,还支持使用 Markdown 格式来编写页面,呈现之前会自动将 Markdown 转成 Html,这个功能在编写文档型页面非常好用。
支持多语言设置,语言设置保存在 Cookie 中,可由用户任意切换。
除了在页面开发可以使用外,Voyager 还支持邮件模板,可以在邮件发送前将动态页面计算完成之后再发送邮件。PQL、DataHub邮件发送功能均支持 Voyager 动态模板,Keeper调度工具所有邮件模板均基于 Voyager 编写。
参考链接