0

我有一个这样定义的控制器:

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 问题

你能帮我破译编译器的输出吗?

4

1 回答 1

1

这是你的问题:Form("label" -> "This is a label")。您正在尝试调用方法Form.apply(p: (String, String))并且对象中没有这样的方法Form

于 2012-04-09T12:08:57.507 回答