在Play Framework中的变量中获取scala模板

时间:2015-02-08 22:45:18

标签: java scala playframework

假设视图文件夹中有两个scala模板

  1. file1.scala.html
  2. container.scala.html
  3. 现在我想将第一个模板从控制器传递到第二个模板(container.scala.html)。像:

    public class Application extends Controller {
        static Result isItPossible()
        {
            Result theFile=ok(file1.render());
            return ok(container.render(theFile));
        }
    }
    

    有可能吗?如果是,我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以将呈现的模板传递给container模板。 container需要一些Html参数:

container.scala.html:

@(content: Html)

<p>Here's my content: @content </p>

从控制器内部:

public class Application extends Controller {
    return ok(container.render(file1.render()));
}

答案 1 :(得分:0)

值得一提的是,您不需要在控制器中合并包装容器,因为模板引擎可以使用布局为它(as described in docs)。在这种情况下,您可以像这样使用它:

<强> container.scala.html

@()(content: Html)
<p>Here's my content: @content </p>

<强> file1.scala.html

@container() {
    <b>this is content of <i>file1</i> template</b>
}

<强>控制器

public class Application extends Controller {
    static Result itIsPossible() {
        return ok(file1.render());
    }
}