2011-02-09 123 views
1

我有映射:如何區分Grails的URL映射

"/$controller/$action?/$id?"{ 
      constraints { 
       // apply constraints here 
      } 
     } // i used scaffolding and i think this is required by the generated stuff 
'/'(controller:'home') //for the home page 
'/$param1?/$param2?'(controller:'search') //for a search page 

所需的URL顯示在瀏覽器:
www.site.com/ - 家庭

www.site .com /關鍵字1 /關鍵字2 - 用這些可選關鍵字搜索

這似乎工作,但我的問題是: 我可以期待這是正確的,或者在某些情況下,Grails將事情混淆?

回答

1

它不會。 Grails會根據一組給定的優先規則(從特定到普通)對網址映射進行排序。

你的網址永遠是一樣的,並返回相同的頁面。

但是,由於您的映射是模糊的,有時它可能會返回一個您不期望的頁面。更好的設計是將搜索映射到:

/search/params1?/ params2?

這種方式是不明智的。

+0

如果我使用'/ $ param1/$ param2'(controller:'search')和'/ $ param1'(controller:'search')會怎麼樣? – calin 2011-02-09 10:17:19