生成链接时,我需要覆盖 Grails 的默认行为。目的是根据当前语言环境更改 url。
我已经成功地覆盖了 DefaultUrlMappingsHolder,但它只适用于第一次创建链接时的第一个 Web 请求。Grails 似乎将链接存储在某个位置,因此下次我createLink
使用相同的控制器和操作时,它只会显示链接,而无需重新运行创建链接的过程。因此,更改区域设置时链接不会更改。
我做了什么:
- 为每种语言创建 UrlMapping。例如
http://myapp/search
,http://myapp/suche
两者都指向“SearchController” - 覆盖 DefaultUrlMappingsHolder,当通过反向 url 映射创建链接时,它会考虑语言环境并为每个语言环境选择正确的 urlmapping 并创建正确的 url。
我应该怎么做才能阻止 Grails 的这种行为并强制链接生成再次运行?
谢谢。