它向我抛出了第 3 行的异常。问题是我只有这些行:
package controllers
import play.api._
import play.api.mvc._
import views._
import models._
object Application extends Controller {
def index = Ok(views.html.index("grrr", "blabla"))
}
编辑:索引.html
@import helper._
@main("Todo") {
<h1>Hello World</h1>
}
我在 Windows xp 上使用播放 2.2.0(带有 sbt)
我认为问题出在 IDE 中的行分隔符上。我曾经将LF(Linux)更改为CR(Mac)(错误地,不知道这对编译有影响)并努力解决同样的问题。更改为默认服务器后,一切恢复正常。
Play! 模板的第一行是为签名定义保留的。当您创建新的 Play 应用程序时,Welcome
屏幕中也会提到这一点。
除了为什么导入helper._
的问题之外,我会执行以下操作:
- 将第一行设为空,或者至少没有导入语句。
- 运行
play clean
- 在此之后它应该可以工作,我希望:-)
更多信息:
- 播放框架模板自动导入models._等
- https://github.com/playframework/playframework/blob/1acfd1dc4264e7589876fb1f4ebf37e584ab8bc6/framework/src/play/src/main/scala/views/play20/welcome.scala.html#L81
- 如果你知道一点斯卡拉(我还不知道):https://github.com/playframework/playframework/blob/9206bea8c9c88acdc6786ebb2554f081396e8f6a/framework/src/templates-compiler/src/main/scala/play/templates/ScalaTemplateCompiler.scala
编辑: 2013.09.24 at 22:15
您将两个参数传递给视图模板 ( views.html.index("grrr", "blabla")
),(视图编译为函数)。因此,在您的函数("索引视图")中,第一行应该定义函数签名(参数)。我认为您应该将模板编写为:
@(firstString : String, secondString : String)
@import helper._
@main("Todo") {
<h1>Hello World</h1>
}