Play框架中的可选命名参数

アレッ*_*ックス 1 scala playframework playframework-2.1 playframework-2.2

在Rails中我可以说:

get 'path1/:path2/(:path3)' => "controller#action"
Run Code Online (Sandbox Code Playgroud)

where path3是一个可选的命名参数,前面有一个斜杠.在Play Framework中,我只找到了这样做的方法,但仅用于参数?.

我如何在Play Framework中执行此操作?

Leo*_*Leo 8

2.1中删除了对可选路径参数的支持,请参阅:

我们删除了路径可绑定中的Option [...]支持,因为拥有可选的path参数没有意义.您可以实现自己的路径可绑定,如果您愿意,可以支持它.

这里描述一种可能的解决方案(自己实现可绑定).

但最简单的解决方案可能是简单地定义两条路线:

GET   /path/:a                   controllers.Application.show(a, b = "default")
GET   /path/:a/:b                controllers.Application.show(a, b)
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你所指的是路径参数和查询参数(?URL 后面的部分).命名参数是一个完全不同(和无关)的故事.