标签函数

所谓标签函数,即允许处理模板文件里的一块内容,功能等于同jsp tag。如Beetl内置的layout标签

index.html

  1. <%
  2. layout("/inc/layout.html",{title:'主题'}){
  3. %>
  4. Hello,this is main part
  5. <% } %>

layout.html

  1. title is ${title}
  2. body content ${layoutContent}
  3. footer

第1行变量title来自于layout标签函数的参数

第2行layoutContent 是layout标签体{}渲染后的结果

关于layout标签,参考高级主题布局

Beetl内置了另外一个标签是include,允许 include 另外一个模板文件

  1. <%
  2. include("/inc/header.html"){}
  3. %>

在标签中,{} 内容将依据标签的实现而执行,layout标签将执行{}中的内容,而include标签则忽略标签体内容。

关于如何实现标签函数,请参考高级主题,如下是一个简单的的标签函数:

public class CompressTag extends Tag{
        @Override
        public void render(){
                BodyContent  content = getBodyContent();
                String content = content.getBody();
                String zip = compress(conent);
                ctx.byteWriter.write(zip);
        }
}