我是 Play 新手,目前正在使用 Play 2.2.1
我正在尝试为“路由”中定义的端点实现不区分大小写的路由
例如我在路线文件中定义了一条路线,例如 /accessLicense,如下所示
GET /accessLicense controller.MyController.accessLicense()
现在,如果我触发/accessLicense,那就太好了;正如预期的那样,但如果尝试使用 /AccessLicense、/AcCeSSLicenSe 或任何其他拼写完全相同单词的大写/小写字母组合,则它不起作用。
预先感谢您的指导和支持!
不幸的是,据我所知,没有办法神奇地打开一个开关来完成你想要的事情。值得庆幸的是,有一个解决方法,恕我直言,但它是最好的解决方法。
GET /[aA][cC][cC][eE][sS][sS].....
编辑:我做了以下操作,这符合我仅将 URL 的第一部分小写的具体要求。因此 GET /AbCdE/XyZ 将变为 GET /abcde/XyZ,如果这在路由中有一个操作,那么它将得到适当的处理。
override def onRouteRequest( request: RequestHeader ) = {
val path = request.path
val split = path.split( "/" ).toList
val lowerCasePath = split match{
case ""::Nil => ""::Nil
case ""::x::y => ""::x.toLowerCase::y
}
logger.error( lowerCasePath.toString )
super.onRouteRequest( request.copy( path = lowerCasePath.mkString( "/" ) ) )
}
编辑请参阅此处:https://jazzy.id.au/2013/05/08/advanced_routing_in_play_framework.html https://jazzy.id.au/2013/05/08/advanced_routing_in_play_framework.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)