我有点困惑如何在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)
什么都没发生。没错。没有控制器电话。
我不知道出了什么问题。
有什么想法吗?提前谢谢!
答案 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>
}