如何在play框架中创建带参数的提交按钮

时间:2014-09-23 06:49:51

标签: scala playframework-2.0

我有点困惑如何在Play框架2中创建带参数的提交按钮。 我试试这个:

<form method="GET">
    <table class="table table-bordered table-hover">
        <tr>
            <th>@Messages("id")</th>
            <th>@Messages("errorCode")</th>
            <th>@Messages("errorMessage")</th>
        </tr>
        @for(telegram <- telegrams) {
        <tr>
          <td>@telegram.id</td>
          <td>@telegram.errorCode</td>
          <td>@telegram.errorMessage</td>
          <td><button type="submit" name="action" value="@controllers.routes.Telegrams.createTelegram(telegram.id)">Create Telegram</button></td>
        </tr>
        }
    </table>
</form>

在路线文件中,我添加了这一行:

GET     /telegrams/createTelegram/:id  controllers.Telegrams.createTelegram(id: Long)

什么都没发生。没错。没有控制器电话。

我不知道出了什么问题。

有什么想法吗?提前谢谢!

2 个答案:

答案 0 :(得分:1)

网址应转到action元素的form属性(每次循环迭代时单独form):

@for(telegram <- telegrams) {
    <form method="GET" action="@controllers.routes.Telegrams.createTelegram(telegram.id)">
        <tr>
            <td>@telegram.id</td>
            <td>@telegram.errorCode</td>
            <td>@telegram.errorMessage</td>
            <td><input type="submit" value="Create telegram" /></td>
        </tr>
    </form>
}

答案 1 :(得分:1)

为什么它必须是带有简单HTTP GET按钮的表单?链接将执行相同的工作:

@for(telegram <- telegrams) {
    <tr>
        <td>@telegram.id</td>
        <td>@telegram.errorCode</td>
        <td>@telegram.errorMessage</td>
        <td><a href="@controllers.routes.Telegrams.createTelegram(telegram.id)">Create telegram</a></td>
    </tr>
}