2016-04-11 29 views
3

在我的Grails應用程序,我有一個URL映射,如:Grails 2.x - 如何爲一個URL映射保留文件擴展名?

/section/$title/object/$id

ID是不是數字。它們是可以包含.的字符串。在第一個.之後,Grails將刪除所有內容,因此如果我有/section/books/object/affx.1.2.10,則控制器方法僅接收affx

我知道文件擴展名處理可以全局關閉,但這不是我想要的。我需要爲此URL保留完整的ID字符串僅限。我怎麼能爲這個URL映射做這件事,或者在Grails將刪除文件擴展名時添加一些邏輯?

回答

0

增加約束部分,將URL映射例如:

"/test/$id"(controller: test, action: 'index') { 
    constraints { 
     id(matches: /.+/) 
    } 
} 
+0

我嘗試過了,控制器方法仍然只能接收'affx'。 – kurzweil4

+0

你是否試圖擴展正則表達式來敲擊$ id中的點?從grails 2.3開始,你也可以嘗試:'「/ $ controller/$ action?/ $ id?(。$ {format})?」'並將其餘部分放在$ format變量中。 –