如果由父模板调用,Rythm不能@import模板

时间:2017-08-24 17:12:10

标签: java rythm

我有一组4个模板文件,所有文件都带有.rythm扩展名,并且都存在于同一目录中。让我们称呼他们" Main.rythm"," Child1.rythm"," Child2.rythm"和" Helper.rythm&#34 ;。另外,我还在渲染Main之前将home.template.dir设置为此目录。

在Helper模板中,我只有一堆@def来做一些基本的常见格式化,这样我就不必回调一下我的java类或者弄乱实际的模板了不需要在那里的逻辑。

Main看起来像这样:

@args {
    String aString,
    MyClass bunchOfData,
    String anotherString
    @//...
}
@import("Helper")
There's some formatting here, using @aString
There's some formatting using an @def in Helper, like @foo(anotherString)

@Child1(bunchOfData)

@Child2(bunchOfData)

Child1和Child2彼此相似,看起来像这样:

@args MyClass bunchOfData
@import("Helper")
@{
    //Some preformatting stuff here
}
Make a lot of method calls on @bunchOfData, some of which will also use an @def or two in Helper

我的问题是我在@import("Helper")行的Child1中收到错误:

Exception in thread "main" org.rythmengine.exception.CompileException: Syntax error on token "import", delete this token

Template: /path/to/templates/Child1.rythm

我已经尝试评论@import,但后来我无法称呼那些@def,并从Rythm那里得到错误," Helper无法解析& #34;当我使用@Helper.foo(bunchOfData.getSomething())时。

为了从Child1和Child2访问Helper中的这些@def,我需要做什么?

1 个答案:

答案 0 :(得分:1)

您不应该使用@import,而是应该使用@include@import就像java中的import指令一样,为此模板添加了一个包来引用。 @include用于添加您可以在此模板中引用的其他模板。