gpt4 book ai didi

scala - 如何在 play2 中获取已发布的 "id=1&id=2"?

转载 作者:行者123 更新时间:2023-12-05 00:00:42 30 4
gpt4 key购买 nike

我有一个包含一些行的表单,每个行的开头都有一个复选框。用户可以选择其中的一些,然后按“删除选定的行”按钮提交。

发布的数据如下所示:

id=1&id=2&id=3

我想让他们付诸行动,我的代码是:
def delete = Action { implicit request =>
Form("id"->seq(nonEmptyText)).bindFromRequest.fold(
errors => BadRequest,
ids => {
println(ids) // (!)
for(id<-ids) deleteRow(id)
}
)
}

但我发现 ID 总是 List() ,一个空列表。

我检查了 play2 提供的“表单样本”,发现 seq(...)应该只使用这种格式的发布数据:
company sdfdsf
firstname sdfds
informations[0].email sdf@sdf.com
informations[0].label wef
informations[0].phones[0] 234234
informations[0].phones[1] 234234
informations[0].phones[x]
informations[1].email sdf@sdf.com
informations[1].label wefwef
informations[1].phones[0] 234234
informations[1].phones[x]
informations[x].email
informations[x].label
informations[x].phones[x]

请注意这里有很多 [0]或参数名称中的其他索引。

最佳答案

而不是使用 Form在这种情况下,您可以(并且可能想要)访问请求正文的 url 编码内容。

这样做的方法是例如:

def delete = Action { implicit request =>
request.body.asFormUrlEncoded match {
case Some(b) =>
val ids = b.get("id")
for(id <- ids) deleteRow(id)
Ok
case None =>
BadRequest
}
}

关于scala - 如何在 play2 中获取已发布的 "id=1&id=2"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9700328/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com