gpt4 book ai didi

java - Play Framework 2.2.1 - 不区分大小写的路由

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:12 24 4
gpt4 key购买 nike

我是 Play 的新手,目前正在使用 Play 2.2.1

我正在尝试为“路由”中定义的端点实现不区分大小写的路由

例如我在路由文件中定义了一个路由,比如/accessLicense,它看起来像下面这样

GET/accessLicense controller.MyController.accessLicense()

现在,如果我启动/accessLicense,效果会很好;正如预期的那样,但如果尝试 fir/AccessLicense、/AcCeSSLicenSe 或拼写完全相同单词的大写/小写字母的任何其他组合,则它不起作用。

在此先感谢您的指导和支持!!!

最佳答案

不幸的是,据我所知,没有办法神奇地打开一个开关来做你想做的事。值得庆幸的是,有一个解决方法,恕我直言,但这是可以做到的最好的解决方法。

获取/[aA][cC][cC][eE][sS][s​​S].....

编辑:我执行了以下操作,这符合我只将 URL 的第一部分小写的特定要求。所以 GET/AbCdE/XyZ 将变为 GET/abcde/XyZ,如果它在路由中有一个 Action ,那么它将被适本地处理。

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

关于java - Play Framework 2.2.1 - 不区分大小写的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22015902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com