jetbrick-template-2.x 已经发布,新版文档请看这里:http://subchen.github.io/jetbrick-template/2x/

§jetbrick-template 中如何嵌入子模板?(父子间参数传递)

在 jetbrick-template 中我们有:

§1. 最常规的做法是

§1.1 include 静态文件名

#include("/include/header.jetx")
${include("/include/header.jetx")}

§1.2 include 动态文件名

#define(String url)
#include(url)
${include(url)}

注意#include 指令和 include() 函数的区别是:

  • #include 指令直接将内容输出到原始的 Stream/Writer 里面,效率高。
  • include() 函数将内容缓存到一个 String 中返回,可以对返回值进行进一步处理。
  • #include 指令如果包含的是静态文件名,那么会检查文件是否存在。include() 函数不会做任何检查。

§2. 对 include() 函数返回值处理的应用

下面内容全部转为大写字母
${include("ascii.jetx").toUpperCase()}

输出内容

ABCDEFG...

§3. 父子模板间传递参数

我们有以下几种方式可以在父子模板间传递参数

§3.1 include 父传子参数例子:

子模板 sub.inc.jetx

Hello from sub, parent name is ${parentName}.

父模板 parent.jetx

This is parent.
#include("sub.inc.jetx", {"parentName", "PARENT_NAME"})

显示结果如下:

This is parent.
Hello from sub, parent name is PARENT_NAME.

§3.2 #put 子传父参数例子:

子模板 sub.inc.jetx

Hello from sub.
#put("age", 1234567890);

父模板 parent.jetx

This is parent.
#include("sub.inc.jetx")
sub.age = ${context.age}

显示结果如下:

This is parent.
Hello from sub.
sub.age = 1234567890