[英]Play Framework 2.2.1 - Case insensitive routing
我是Play的新手,目前正在使用Play 2.2.1
我正在嘗試為“路由”中定義的端點實現不區分大小寫的路由
例如,我在路由文件中定義了一條說/ accessLicense的路由,如下所示
GET /accessLicense controller.MyController.accessLicense()
現在,如果我啟動/ accessLicense,它會很棒; 如預期的那樣,但是如果嘗試使用/ AccessLicense,/ AcCeSSLicenSe或拼寫完全相同的單詞的大寫/小寫字母的任何其他組合,則它將無效。
在此先感謝您的指導和支持!!!
不幸的是,對於AFAIK,無法神奇地打開可以實現您想要的功能的開關。 值得慶幸的是,有一個變通方法,IMHO較差,但它可以做到最好。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.