# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# Home page
GET / controllers.Application.index()
# Tasks
GET /tasks controllers.Application.tasks()
POST /tasks controllers.Application.newTask()
POST /tasks/:id/delete controllers.Application.deleteTask(id: Long)
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
网址:
http://localhost:9000/tasks/2/delete
错误:
Action not found
For request 'GET /tasks/2/delete'
These routes have been tried, in this order:
1 GET / controllers.Application.index()
2 GET /tasks controllers.Application.tasks()
3 POST /tasks controllers.Application.newTask()
4 POST /tasks/$id<[^/]+>/delete controllers.Application.deleteTask(id:Long)
5 GET /assets/$file<.+> controllers.Assets.at(path:String = "/public", file:String)
HTML片段:
<form action="/tasks/2/delete" method="POST" >
<input type="submit" value="Delete">
</form>
我不明白为什么规则#4无法适用。
我的错误在哪里?
最佳答案
我终于完成了自己的POST请求,以添加缺少的ID:
@(tasks: List[Task], taskForm: Form[Task])
@import helper._
@main("Todo list") {
<h1>@tasks.size() task(s)</h1>
<ul>
@for(task <- tasks) {
<li>
@task.label
@form(routes.Application.deleteTask(task.id)) {
<input type="hidden" id="id" value="@task.id"><!-- *** added ***-->
<input type="submit" value="Delete">
}
</li>
}
</ul>
<h2>Add a new task</h2>
@form(routes.Application.newTask()) {
@inputText(taskForm("label"))
<input type="submit" value="Create">
}
}
产生的HTML为:
<form action="/tasks/1/delete" method="POST" >
<input type="hidden" id="id" value="1">
<input type="submit" value="Delete">
</form>
在PlayFramework 2.1.5之上执行的PlayFramework 2.2.0的Todolist示例效果不佳...
关于java - PlayFramework 2.1.5/Java/未找到操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19028237/