Kun*_*ale 6 java routing playframework playframework-2.2
我是Play的新手,目前正在使用Play 2.2.1
我试图为"路由"中定义的端点实现不区分大小写的路由
例如,我在路径文件中定义了一条路由说/ accessLicense,它看起来如下所示
GET /accessLicense controller.MyController.accessLicense()
现在,如果我开火/访问许可证,它会很棒; 正如预期的那样,但是如果尝试使用fir/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( "/" ) ) )
}
Run Code Online (Sandbox Code Playgroud)
编辑请参阅此处: https: //jazzy.id.au/2013/05/08/advanced_routing_in_play_framework.html