我们想要的基本上是这样的:
/foo/* controllers.FooController.foo
然而这不起作用。
我们找到了以下解决方法:
/foo/*ignore controllers.FooController.foo(ignore)
但这使得该方法的代码controllers.FooController.foo
有点丑。有一个更好的方法吗?
看一遍代码here https://github.com/playframework/Play20/blob/master/framework/src/routes-compiler/src/main/scala/play/router/RoutesCompiler.scala#L156,路由器无法在不指定的情况下处理“slug”部分identifier
...解析器组合器没有将其声明为可选,并且map
(^^
)显然是按原样使用它。
如果它不会引起其他问题,即模式将隐藏所有其他路由,因为它在文件中定义得更高(甚至最糟糕,包括在内),那么它可能是一个很好的功能请求。
如果我们看的话,这看起来像是故意做的here https://github.com/playframework/Play20/blob/master/framework/src/routes-compiler/src/main/scala/play/router/RoutesCompiler.scala#L345,我们可以发现动态参数不能被分配默认值——事实上,在这种情况下我们会陷入我刚才提到的情况:-/。
我的第一个建议是告诉你使用ignore
as an Option[String]
以及将其设置为的操作定义None
(而不是一个空的String
因为它更具表现力)。
我的第二个想法是激发您想知道这种情况是否真的相关,因为它很容易出错并且可能隐藏更多问题
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)