播放框架模板抛出一个神秘的错误

时间:2013-03-09 04:43:35

标签: scala templates playframework playframework-2.1

我是Play和Scala的新手。整体而言,这个教程非常好,但是当我进入模板时,我遇到了一个非常神秘的错误消息。我正在运行helloworld示例,并且它在模板的第一行上出现以下错误而失败:

  

`标识符'预期但''找到

这是它失败的模板:

@(name: String, repeat: Int, color: Option[String])

@main("Here is the result:") {

    <ul style="color: @color.getOrElse("inherited")">
        @for(_ <- 1 to repeat) {
            <li>Hello @name!</li>
        }
    </ul>

    <p class="buttons">
        <a href="@routes.Application.index">Back to the form</a>
    </p>

}

我正在使用Scala 2.1和Play 2.1。

编辑 - 我没有更改示例代码中的任何内容。我根据评论的建议在下面添加了更多信息。谢谢你的帮助。

主要观点如下:

@(title: String)(content: Html)
<!DOCTYPE html>
<html>
    <head>
        <title>@title</title>
        <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
        <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
        <script src="@routes.Assets.at("javascripts/jquery-1.6.4.min.js")" type="text/javascript"></script>
    </head>
    <body>

        <header>
            <a href="@routes.Application.index">@title</a>
        </header>

        <section>
            @content
        </section>

    </body>
</html>

控制台例外:

! @6dhjgk32b - Internal server error, for (GET) [/] ->

sbt.PlayExceptions$TemplateCompilationException: Compilation error[`identifier' expected but ` ' found]
        at sbt.PlayCommands$$anonfun$43.apply(PlayCommands.scala:433) ~[na:na]
        at sbt.PlayCommands$$anonfun$43.apply(PlayCommands.scala:409) ~[na:na]
        at sbt.Scoped$$anonfun$hf5$1.apply(Structure.scala:581) ~[na:na]
        at sbt.Scoped$$anonfun$hf5$1.apply(Structure.scala:581) ~[na:na]
        at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49) ~[scala-library.jar:na]
        at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311) ~[na:na]
[warn] play - No application found at invoker init

路由

GET     /                           controllers.Application.index

Application.scala

/**
   * Describes the hello form.
   */
  val helloForm = Form(
    tuple(
      "name" -> nonEmptyText,
      "repeat" -> number(min = 1, max = 100),
      "color" -> optional(text)
    )
  )

  // -- Actions

  /**
   * Home page
   */
  def index = Action {
    Ok(html.index(helloForm))
  }

编辑2:

当我拿出所有模板代码(使用@)并且只有一个文本模板(例如<h1>Hello</h1>)时,我看到没有问题。一旦我使用@ event添加模板代码,如果它是一个未使用的代码块,如下所示我得到了该错误。我在Windows 7上使用eclipse + Scala和Play插件。

@sidebar = {
  <h1>Sidebar</h1>
}

0 个答案:

没有答案