我有一个像这样定义的控制器:
package controllers
import play.api._
import play.api.mvc._
import models.Task
import play.api.data.Form
object Application extends Controller {
def index = Action {
// Compiler error on Form
Ok(views.html.index(List[Task](), Form("label" -> "This is a label")))
}
def tasks = TODO
def newTask = TODO
def deleteTask(id: Long) = TODO
}
然后我定义了一个视图:
@(tasks: List[Task], taskForm: Form[String])
@import helper._
@main("Todo list") {
<h1>@tasks.size task(s)</h1>
<ul>
@tasks.map { task =>
<li>
@task.label
@form(routes.Application.deleteTask(task.id)) {
<input type="submit" value="Delete">
}
</li>
}
</ul>
}
这会产生以下编译器错误:
重载方法值适用于替代方案:[T](映射: (String,play.api.data.Mapping [T]))play.api.data.Form [T]
[T](制图:play.api.data.Mapping [T])play.api.data.Form [T]不能 应用于((java.lang.String, java.lang.String))Application.scala / todolist / app / controllers行 11斯卡拉问题
你能帮我解读一下编译器的输出吗?
答案 0 :(得分:1)
这是您的问题:Form("label" -> "This is a label")
。您正在尝试调用方法Form.apply(p: (String, String))
,并且Form
对象中没有此类方法。