java - 节奏模板继承

标签 java template-engine rythm

我们有一个通用的页眉/页脚模板作为父模板,我们将重用它作为 100 个子模板。扩展指令不支持此...

当我查看 Rythm 文档时,我找到了一种通过 include/invoke 指令来实现此目的的方法,但 include/invoke 指令的主要目的是调用通用函数。扩展指令以相反的方式支持,将带有渲染指令的主模板内容作为父模板,将页眉/页脚模板作为子模板,但实时用例完全不同

我的理解对吗?有办法解决我的问题吗?

已编辑:

我已经编写了如下代码来实现它:

页脚.html

@def header1() {
    <h3>This is footer1 section</h3>
}

@def header2() {
    <h3>This is footer2 section</h3>
}

模板1.html

@include("footer.html")
@args String who
<html>
    <head>
        <title>Hello world from Rythm</title>
    </head>
    <body>
        <h1>Hello @who</h1>
        @if(footer.equals("footer1){
            @header1();
        } else {
            @header2();
        }
    </body>
</html>

我所做的是在包含/调用方法调用的帮助下我得到了结果,但是当我使用扩展时它不起作用。如果可能的话你可以使用扩展来解决我的情况吗?

最佳答案

要使用@extends达到相同的效果,您应该:

layout.html

<html>
    <head>
        <title>Hello world from Rythm</title>
    </head>
    <body>
        @render()
    </body>
</html>

header1.html

<h3>This is footer1 section</h3>

header2.html

<h3>This is footer2 section</h3>

template.html

@extends(layout)
@args String who, String footer

<h1>Hello @who</h1>
@if(footer.equals("footer1")){
    @header1();
} else {
    @header2();
}

关于java - 节奏模板继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154763/

相关文章:

java - 对于任务关键型工作负载,64 位 JVM 与 32 位一样好吗?

python - Bottle @view 与 template()

用于移动 Web 应用程序的 JavaScript 模板引擎

javascript - 是否有类似于 Razor 的模板语言用于纯 Javascript 应用程序?

java - 正则表达式根据运算符拆分字符串并在答案中保留运算符

java - getKeyCode()方法错误找不到符号

java - 从 ArrayList 中删除多个元素

Java速度虚拟机文件#set使用 boolean 变量

java - 模板框架基准测试