2012-11-22 49 views
1

在我play2路線文件結腸,我試圖用一個冒號作爲文字:播放框架2如何逃生路線中

GET  /:search      controllers.SearchController.index() 

但玩抱怨,一個參數丟失。我如何逃避冒號(我試過反斜槓)?

感謝

+0

如果你編碼路徑,即'/%3Asearch'而不是'/:search',會發生什麼? – Carsten

+0

GET /:搜索 - >操作未找到 –

+0

GET /%3A:搜索 - >正常工作,但瀏覽器根本無法退出冒號。我檢查了http://en.wikipedia.org/wiki/Terminator_3:_Rise_of_the_Machines的請求,這也不會將冒號編碼爲%3A。 –

回答

3

你必須引入一個虛擬的正則表達式的參數,因爲這樣的:

GET  /$colon<\:>search   controllers.SearchController.index(colon) 

則還必須重新定義你的控制器的方法:

public static Result index(String colon) { 
.... 

解析器是建立在這樣一種路徑表達式不能被轉義的方式,除了這個方法。

+0

謝謝。尷尬,但可行。 –