播放框架2:使用视图文件语法中的参数进行反向路由

时间:2013-09-27 21:38:29

标签: html scala playframework-2.0 playframework-routing

Item是一个模型类,Items是一个控制器类。现在我尝试使用带参数的反向路由,但它失败了。怎么解决?

视图:

@(item: Item)

<a href="@routes.Items.delete(@item.id)">delete</a>

路线:

GET     /items/$id<[0-9]+>           controllers.Items.show(id: Long)
GET     /items/add                  controllers.Fruits.addForm()
POST    /items/add                  controllers.Items.add()
DELETE  /items/$id<[0-9]+>           controllers.Fruits.delete(id: Long)

我得到的错误

illegal start of simple expression

并指向第二个@字符

1 个答案:

答案 0 :(得分:3)

也可以将评论中的讨论带到实际的答案中。你的代码没有编译,因为你在参数中有一个额外的@

至于为什么你没有达到DELETE终点是因为你不能有一个常规的HTML链接触发GET以外的动词,你只能提交表格到POST。如果要调用delete,则需要使用JavaScript。例如,您可以使用jQuery的ajax方法,类型设置为"DELETE"。在您的情况下,您可以创建一个onclick处理程序,该处理程序又发送一个ajax请求。另请注意,并非所有浏览器都支持DELETE动词。