Java 呈现Play framework 2.0模板的一部分

Java 呈现Play framework 2.0模板的一部分,java,playframework,playframework-2.0,Java,Playframework,Playframework 2.0,我试图从一个控制器中为模板内的标记(函数)而不是模板调用render。通过这种方式,我可以使用它对来自ajax调用的页面进行部分呈现。当然,我可以在几个模板中分离表单的组件,并在这些模板上进行调用渲染,但我认为另一种方法会更干净 我想做的是如下所示: formpage.scala.htm @() <html> ... @content ... </html> @********************************** * Helper generati

我试图从一个控制器中为模板内的标记(函数)而不是模板调用render。通过这种方式,我可以使用它对来自ajax调用的页面进行部分呈现。当然,我可以在几个模板中分离表单的组件,并在这些模板上进行调用渲染,但我认为另一种方法会更干净

我想做的是如下所示:

formpage.scala.htm

@()
<html>
...

@content

...
</html>


@**********************************
* Helper generating form *
***********************************@
@content() = {

<h3 class="form-heading">@Messages("employees")</h3>

@form(routes.AppController.save()) {    

@inputText...
...

}
@()
...
@内容
...
@**********************************
*辅助生成窗体*
***********************************@
@内容()={
@信息(“员工”)
@表单(routes.AppController.save()){
@输入文本。。。
...
}
并使用ajax呈现内容函数,而不必将其分离到 单独的文件。这样我可以呈现模板的一部分,而不会将其分割
在多个文件中。

事实上,标记只是较小的模板,因此您可以同时使用标记-在模板和控制器中使用,最简单的示例:

/app/views/tags/mytag.scala.html

This is my tag...
@(headline: String)(body: Html)

<h3>@headline</h3>
<div class="tagsBody">
    @body
</div>
在控制器中,可以渲染为:

public static Result createFromTag(){
    return ok(views.html.tags.mytag.render());
}
public static Result createFromTag(){

    return ok(
            views.html.tags.othertag.render(
                    "Head from controller",
                    new play.api.templates.Html("This code becomes from <i>controller</b>")
            )
    );
}
在其他模板中,您只需插入:

....
And there is my tag rendered
<b>@tags.mytag()</b>
在控制器中,可以渲染为:

public static Result createFromTag(){
    return ok(views.html.tags.mytag.render());
}
public static Result createFromTag(){

    return ok(
            views.html.tags.othertag.render(
                    "Head from controller",
                    new play.api.templates.Html("This code becomes from <i>controller</b>")
            )
    );
}
决赛


您可以在中找到标记说明。

我似乎无法为自己完成此操作。我的视图上有一个按钮,该按钮调用“createFromTag”的等效项。然后,它将整个页面替换为我的等效项othertag的呈现。您知道如何使用该按钮重新呈现视图的另一部分吗?