首页 文章

播放表单参数有助于解密编译错误

提问于
浏览
0

我有一个像这样定义的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 回答

  • 1

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

相关问题