在Rails中,我可以说:
get 'path1/:path2/(:path3)' => "controller#action"
其中path3
是一个可选的命名参数,前面有一个斜杠。在Play Framework中,我只找到了这样做的方法,但只针对?
的参数。
我如何在Play Framework中执行此操作?
答案 0 :(得分:8)
使用2.1,see:
删除了对可选路径参数的支持我们删除了路径可绑定中的Option [...]支持,因为拥有可选的path参数没有意义。您可以实现自己的路径可绑定,如果您愿意,可以支持它。
描述了一种可能的解决方案(自己实现可绑定)here。
但最简单的解决方案可能是简单地定义两条路线:
GET /path/:a controllers.Application.show(a, b = "default")
GET /path/:a/:b controllers.Application.show(a, b)
顺便提一下,您所指的是路径参数和查询参数(URL中?
之后的部分)。 Named parameters是一个完全不同(且无关)的故事。