1

我浏览了网页,但在任何地方都没有找到答案。如果我错过了什么,请指点我一个教程。

所以我想在 Play Framework 模板中定义一个变量,当然,稍后会使用它。

目前我的代码如下所示:

@if(menuitems.fetchFromVerySlowDatabase() != null) {
<ul>
    @for(menuitem <- menuitems.fetchFromVerySlowDatabase()) {
        <li><a href="@menuitem.getUrl()">menuitem.getTitle()</a></li>
    }
</ul>
}

我知道我可以缓存menuitems.fetchFromVerySlowDatabase,但我真正想要的是这样的:

@menuitems_from_database = menuitems.fetchFromVerySlowDatabase();
@if(menuitems_from_database != null) {
<ul>
    @for(menuitem <- menuitems_from_database) {
        <li><a href="@menuitem.getUrl()">menuitem.getTitle()</a></li>
    }
</ul>
}

谢谢!

我使用 Java 作为编程语言。

最好的,舒贝

4

1 回答 1

2

只记得在一行中完成

@import scala.Predef; var menuitems_from_database = menuitems.fetchFromVerySlowDatabase();

实时代码示例(index.scala.html从默认模板修改):

@import scala.Predef; var menuitems_from_database = new java.util.ArrayList[String]()
@(message: String)

@{
  menuitems_from_database.add("1")
  menuitems_from_database.add("2")
  ""
}

@main("Welcome to Play") {
    @if(menuitems_from_database != null) {
            <ul>
                @for(menuitem <- menuitems_from_database) {
                    <li><a href="@menuitem">@menuitem</a></li>
                }
            </ul>
        }
}

生成的 HTML:

<!DOCTYPE html>
<html lang="en">
    <head>            
        <title>Welcome to Play</title>
        <link rel="stylesheet" media="screen" href="/assets/stylesheets/main.css">
        <link rel="shortcut icon" type="image/png" href="/assets/images/favicon.png">
        <script src="/assets/javascripts/hello.js" type="text/javascript"></script>
    </head>
    <body>
            <ul>
                    <li><a href="1">1</a></li>
                    <li><a href="2">2</a></li>
            </ul>
    </body>
</html>
于 2017-03-20T20:39:50.697 回答