我是 Play 2 (Scala) 的新手。我需要使用分页来输出列​​表的成员。这很容易,除了分页部分。

在我的路线文件中,我进行了搜索:

GET        /find/thing/:type        controllers.Application.showType(type: String)

如果我想将整个列表转储到页面,这很好用。

现在,如果我想对其进行分页怎么办?我想我可以做——
GET        /find/thing/:type/:page        controllers.Application.showType(type: String, page: Int)

但是如果用户只输入“myurl.com/find/thing/bestThing”而没有页面会发生什么?显然,当它应该自动“默认”到第 1 页时会出现错误。

有没有办法默认这些参数?如果没有,最好的做法是什么?

谢谢!

最佳答案

两种选择:

  • 声明您提到的两条路线(首先使用 parameter with fixed value ),然后您可以全局使用 untrail trick,在这种情况下,它会将您的 /find/thing/something/ 重定向到 /find/thing/something (page=1)
  • 您可以使用 parameters with default values ,那么您的路线将如下所示:
    GET /find/thing/:type  controllers.Application.showType(type: String, page: Int ?= 1)
    

  • 生成的 URL 将类似于:
    /find/thing/something?page=123
    

    关于scala - 带分页的 Play 路线的最佳实践?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27803468/

    10-16 12:43