2012-01-08 55 views
0

您好,無論您身在何處,都可以使用Grails社區!我甚至面臨一個很酷的問題......或者想法。我需要一些幫助。在提交表單之後更改網址,但在Grails中呈現視圖時

我嘗試這樣做是:

  1. 提交搜索表單用一個短語。讓我們說'褲子'。
  2. 將值提交到/ search/list(searchController => list method)
  3. 調用finder返回不同類別(aaa,bb,ccc)中褲子列表作爲結果。
  4. 默認/搜索/列表呈現的URL,我可以顯示列表,但不是...

myapp.com/search/list?search=pants

我想顯示這樣

myapp.com/abc/aaa-bbb-ccc?search=pants

在瀏覽器的URL,而無需使用urlMapping中重定向並再次調用列表的方法。

當然,沒有提交我的搜索表單的相同類型的URL會給出相同的褲子列表,只有在開始時我會有更多標準(商店= [a,b,c],categories = [aaa,bbb, ccc]和搜索短語「褲子」)。

我希望我的聲音夠清楚。思考出箱子表示讚賞。

PS。也許你知道一些Ruby,Java或PHP中的解決方案來處理這種情況?

回答

0

好吧,你可以使用這個urlmappings。

"/$shops/$categories/$search" { 
controller = "search" 
action = "list" 
constraints { 
     shops(matches:/\w-\w-\w/) 
     categories(matches:/\w+-\w+-\w+/) 
} 
} 

如果我正則表達式匹配是正確的,那麼這 會匹配myapp.com/abc/aaa-bbb-ccc?search=pants和 將匹配myapp.com/abc/aaa-bbb-ccc/pants

我想你也可以在urlmappings添加一些預處理,例如,你可以做

"/$shops/$categories/$search" { 
    ... 
    shops = shops.split('-') 
    categories = categories.split('-') 
    ... 
} 

不過,我不是100%肯定這。

+0

要點是,雖然我提交搜索表單,我唯一的變量是在params搜索短語'褲子'。接下來的事情是包含商店和類別列表。有了這個我可以準備兩個字符串使用拆分你提到,即。 'a-b-c'爲商店,'aaa-bbb-ccc'爲類別。現在是棘手的部分,因爲我想顯示基於我剛從調用列表方法在搜索控制器中獲得的變量的URL,而不重定向,因此再次搜索從Url獲​​得額外的參數(Shops => ['a ','b','c'],Categorie => ['aaa','bbb','ccc']。PS。我試着鏈 – pzajdel 2012-01-09 21:20:40

+0

爲什麼不創建一個簡單的中介,它重定向到真正的搜索引擎。例如,你有一個行動搜索,除了使用正確的參數重定向到「/ $ shops/$ categories/$ search」之外,其他任何事情都不會做任何其他事情。不要濫用職權。 – netbrain 2012-01-10 08:02:15

相關問題