播放框架(java):视图包括另一个带有地图的视图

play framework (java) : view include another view with a map

我有这样的看法:

Profile.scala.html :

 @(message: String)

    @Main("Welcome") {
        Welcome : @message
        <br>
        <h2>Profile</h2><br>
        <a href="#">Edit Profile</a><br>
        <a href="@routes.Application.viewEnvironments()">Your Environments</a>

        **@ViewEnvironment.scala.html ????? how can I include it ?**


    }

我想在其中包含另一个视图(这个):

ViewEnvironment.scala.html:

@(map: Map[String, String])

<h2> Environments :</h2>
<p><a href="@routes.Application.AddEnvironment()"> Add new Environment</a></p>

@for((k,v)<- map){

<a href = "#">View: @v</a><br>
<a href="@routes.Application.editEnv(k)">Edit : @v</a><br>
}

<br>

...我可以这样做吗?

谢谢!

模板是 just functions,因此如果您在 app/views/ViewEnvironment.scala.html 中有一个模板文件,它将被编译为一个函数,您可以调用 @views.html.ViewEnvironment(envMap).

如果您调用的模板在同一个包中,例如views.{type-suffix} 你可以省略完整的限定词,直接命名为:

@(message: String)

    @Main("Welcome") {
        Welcome : @message
        <br>
        <h2>Profile</h2><br>
        <a href="#">Edit Profile</a><br>
        <a href="@routes.Application.viewEnvironments()">Your Environments</a>

        @ViewEnvironment(
            Map(
                "key1" -> "value1",
                "key2" -> "value2"
            )
        )
    }
}