我有一个像这样定义的Controller:
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](mapping:(String,play.api.data.Mapping [T]))play.api.data.Form [T] [T](mapping:play.api.data .Mapping [T])play.api.data.Form [T]不能应用于((java.lang.String,java.lang.String))Application.scala / todolist / app / controllers第11行Scala问题
你能帮我解读一下编译器输出吗?
1 回答
这是你的问题:
Form("label" -> "This is a label")
. 您正在尝试调用方法Form.apply(p: (String, String))
,并且Form对象中没有此类方法 .