2013-01-15 56 views
0

我需要在生成鏈接時覆蓋Grails的默認行爲。目的是根據當前語言環境更改網址。強制Grails重製鏈接

我已經成功覆蓋了DefaultUrlMappingsHolder,但它只是在第一次創建鏈接時在第一個Web請求上工作。 Grails似乎將鏈接存儲在某個地方,因此下次我將createLink設置爲相同的控制器和操作時,它只顯示鏈接而不重新運行創建鏈接的過程。因此,當區域設置改變時鏈接不會改變。

我所做的:

  • 爲每種語言創建urlMapping中。例如http://myapp/searchhttp://myapp/suche都指向'SearchController'
  • 覆蓋DefaultUrlMappingsHolder,當通過反向URL映射創建鏈接時,它將區域設置考慮在內,併爲每個區域選擇正確的urlmapping並創建正確的url。

我該怎麼做才能阻止Grails的這種行爲,並強制鏈接生成再次運行?

謝謝。

+0

你是如何重寫DefaultUrlMappingsHolder的? – Samuel

回答

0

你安裝了什麼版本的Grails?在Grails中有關於它的jira。它在更高版本中得到修復。

+0

謝謝,但我不這樣做,我在那個傑拉有同樣的問題。 – BMH

+0

我正在使用Grails 2.0.1 在我的情況下,'getReverseMapping'可以正常工作,但正好在第一次創建鏈接時。當我刷新或轉到另一個具有相同鏈接的頁面時,不再觸發'getReverseMapping'。每次渲染鏈接時,我都要運行'getReverseMapping',所以在區域設置發生變化時鏈接會發生變化。 – BMH