播放路线语法以忽略段塞的一部分

时间:2013-04-10 07:32:22

标签: scala playframework playframework-2.0

我们想要的基本上是这样的:

/foo/*                 controllers.FooController.foo

然而,这不起作用。

我们找到了以下解决方法:

/foo/*ignore           controllers.FooController.foo(ignore)

但这会使方法controllers.FooController.foo的代码略显难看。有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

查看here上的代码,路由器无法在未指定identifier的情况下处理“slug”部分...解析器组合器未将其声明为可选,并且map^^)显然正在使用它。

如果一个模式会隐藏所有其他路由,因为它在文件中定义得更高(甚至更差,包括在内),这可能是一个很好的功能请求。

如果我们看here看起来好像是故意这样做的,我们可以看出动态参数不能被分配一个默认值 - 事实上,在这种情况下,我们将落在我的情况下刚提到: - /。

我的第一个建议是告诉您将ignore用作Option[String],并将操作定义设置为None(而不是空String因为它是{{1}}更具表现力)。 我的第二个是煽动你想知道这种情况是否真的相关,因为它容易出错并且可能隐藏更多问题