2015-01-14 47 views
1

我在Groovy上的Grails中有一個REST服務;提供數據並進行轉換的基本服務。它工作正常,除非傳遞的數據有前後斜線。在這些情況下,瀏覽器嘗試導航到基於該數據的目錄:包含正斜槓的Groovy REST URL映射

本地主機/橫向移動/地圖/ 321 64第四< < <這工作正常
本地主機/橫向移動/地圖/ 321/64 /第四< < <試圖尋找本地主機/橫向移動/地圖/ 321/64 /第四並拋出一個HTTP狀態404

我urlMapping中:

"map/$id" (controller: "map", action: "transform", formats=['text/plain'], method: "GET") 

我的控制器。除了類的聲明和類進口沒有別的事情:

def transform = { 
    //println params.id 
    if (param.id) { 
    DataMap dm = new DataMap(); 
    render dm.hostNodeLookup(params.id) 
    } 
} 

大部分將被傳遞到REST服務將有斜線的數據和每個斜槓「中傳遞的數據」將改變數1-N,但我一直無法弄清楚如何逃避/解析/其他明智的解決這個問題。我已經閱讀了on this site,但我沒有覺得它對這個問題太有幫助。

我無法訪問Web服務器來調整編碼或瀏覽器呈現URL映射和字符串的方式。數據沒有傳到控制器,所以我無法解析出那裏的字符串。任何人有想法?

回答

1

看完this post後,我試了一下,它就像一個魅力。

在urlMapping中的文件添加此**的id變量:

"map/$id**" (controller: "map", action: "transform", formats=['text/plain'], method: "GET")