如何定义(在路由中)从视图模板传递多个Long值

时间:2013-05-05 21:56:04

标签: playframework-2.0

在我的Play 2.0.4项目中,我有一个视图模板,其参数中包含两个值,一个列表和一个long。

@(listOfBooks: List[Book], oID: Long)

我知道传递了正确的值,因为我在循环内的模板主体中打印它们,它们显示正如我所期望的那样。

@for(book <- listOfBooks) {

    <li>
        <b>Original ID: </b>@oID<br>
        <b>New ID: </b>@book.id<br>

    </li>

我正在尝试使用值oID和book.id来调用此视图中的控制器方法。

我定义了一个控制器方法来处理这个问题,并在按下此按钮时调用它。

<a href routes.Application.addAssociate(oID, book.id)"> Button </a>

我在路由器文件中尝试了很多东西,但我无法让它工作。这是当前定义的应用程序路径:

GET     /addAssociate/:oID/:id                   controllers.Application.addAssociate(oID: Long, id: Long)

按下上述按钮后,浏览器中的URL将更改为:

http://localhost:9000/routes.Application.addAssociate(oID,%20book.id)

我收到错误消息:

  

未找到操作请求'GET   /routes.Application.addAssociate(oID,%20book.id)'

我认为问题是我如何定义路由器文件中的连接我不知道如何传递多个Long值。

1 个答案:

答案 0 :(得分:0)

您在视图模板中遗漏了一个神奇的@字符,表明您的网址是动态的:

<a href="@routes.Application.addAssociate(oID, book.id)"> Button </a>