编译错误:未发现:在游戏框架值nonEmptyText同时使用Scala的
问题描述:
这是我Application.Scala编译错误:未发现:在游戏框架值nonEmptyText同时使用Scala的
package controllers
import play.api._
import play.api.data.Form
import play.api.mvc._
import _root_.scala.xml.Text
object Application extends Controller {
def index = Action {
Redirect(routes.Application.tasks)
}
def deleteTask(id: Long) = TODO
val taskForm = Form(
"label" -> nonEmptyText
)
def tasks = Action {
Ok(views.html.index(Task.all(), taskForm))
}
def newTask = Action { implicit request =>
taskForm.bindFromRequest.fold(
errors => BadRequest(views.html.index(Task.all(), errors)),
label => {
Task.create(label)
Redirect(routes.Application.tasks)
}
)
}
}
我用打2.0框架。我错在哪里得到这样的错误?
答
您可以浏览Play 2文档here。通过查看索引,我发现nonEmptyText
包含在play.api.data.Forms对象中。
因此,您需要按照已经建议的方式添加import play.api.data.Forms._
,或者使用Forms.nonEmptyText
替换当前未找到的符号,因为它已经被导入。
答
我发现重新启动服务器解决了我的问题。
我不知道玩,但从你的例子,你期望'nonEmptyText'来自哪里?它当然不是在那个代码片段的任何地方定义的。也许['Forms.nonEmptyText'](http://osdir.com/ml/play-framework/2012-05/msg02003.html)? – 2012-07-22 15:24:23
我以为这个导入_root_.scala.xml.Text照顾了。如何去做呢?新手到斯卡拉。 – Hick 2012-07-22 15:26:30
看起来好像是在play.api.data.Forms中定义的:https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/data/ Forms.scala – 2012-07-22 15:28:13