Playframework 正在显示BasicCalTemplate.toString

Playframework 正在显示BasicCalTemplate.toString,playframework,Playframework,我有一个基本模板,它遵循以下模式: 标题、页眉、页脚 这是我的基本模板(“main.scala.html”)。除了content:Html之外,所有参数都是可选的 @(title:String = "Untitled")(content: Html)(header: Html = null)(footer: Html = null) <!DOCTYPE html> <html lang="en"> <head> <meta ch

我有一个基本模板,它遵循以下模式: 标题、页眉、页脚

这是我的基本模板(“main.scala.html”)。除了
content:Html
之外,所有参数都是可选的

@(title:String = "Untitled")(content: Html)(header: Html = null)(footer: Html = null)

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@title</title>
    </head>

    @header

    <body>
        @content
    </body>

    (C) 2013
    @footer
</html>
我使用控制器中索引函数的索引模板

  def index = Action {
    request => {
      logRequest(request)
      request.session.get("auth").map(
        email => {
          Ok(views.html.index(email))
        }
      ) getOrElse {
        Redirect(routes.Application.login)
      }
    }
  }
问题是,当我尝试访问索引时,我得到以下结果:

BaseScalateTemplate(play.api.templates.HtmlFormat$@a335c3b)(“主页-- Nomad){您的电子邮件是test@example.com}{页眉}{页脚 }


也许解析器没有按照您期望的方式解释index.scala.html。试一试

@(email: String)

@main ("Home") {
    Your email is @email.
} {
    Header
} {
    Footer
}

更新了一个不同的建议--以前没有注意到缺少的参数。@内容没有被使用,所以我从问题中删除了它。除此之外,至少如问题中所述,内容不是可选的。您没有提供默认的.facepalm!我刚刚意识到“你的电子邮件是”这一点是内容的论点!很抱歉您的示例应符合以下要求:
@(email: String)

@main ("Home") {
    Your email is @email.
} {
    Header
} {
    Footer
}