gpt4 book ai didi

scala - 在 Play Framework 中使用可选的 GET 参数反向路由

转载 作者:行者123 更新时间:2023-12-04 02:38:02 26 4
gpt4 key购买 nike

我正在使用 scala 2.10 和 playframework 2.2.1

让我们假设以下路由:

GET    /users/page/:page/limit/:limit    controllers.Users.showUsers(page: Int, limit: Int)

我想添加带有 GET 方法和几个字段的搜索表单,并添加一些分页。例如,表单提交后 url 将如下所示:

http://example.com/users/page/1/limit/20?login=someLogin&email=

为了避免分页代码中的 url 硬编码,我在模板中使用了反向路由,例如 @routes.Users.showUsers(currentPage, limit)。是否可以将 GET 参数也添加到生成的 url 而无需一些丑陋的代码,如 fold through Form inside template 等?

最佳答案

是的,有点。可选路由参数已在 Play 2.2 中删除,因此您必须为分页参数定义默认值。反向路由器将知道如何填写它们。

GET    /users/page/:page/limit/:limit       controllers.Users.showUsers(page: Int, limit: Int, login: String ?= "", email: String ?= "")

object Users extends Controller {

def showUsers(page: Int, limit: Int, login: String = "", email: String = "") {
// show those users..
}
}

@routes.Users.showUsers(3, 20, "someLogin") 将生成 URL:/users/page/3/limit/20?login=someLogin

不是特别漂亮,但比硬编码 URL 好。

关于scala - 在 Play Framework 中使用可选的 GET 参数反向路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20493361/

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