2011-01-07 38 views
1

考慮下面的Grails URL映射:如何指示Grails始終創建以斜線(/)結尾的URL:?

class UrlMappings { 
    static mappings = { 
    "/something/${foo_id}/" { 
    controller = "foo" 
    action = "bar" 
    } 
} 

當生成URL:■使用g:link ..

<g:link controller="foo" action="bar" params="[foo_id: 123]">foobar</g:link> 

..生成的鏈接看起來像..

<a href="/something/123">foobar</a> 

注意URL映射中的結尾斜槓將被刪除。

但是,URL:s /something/123/something/123/仍然有效。

由於我正在構建的應用程序的要求,我必須使「以斜線結尾」 - 版本URL是主要URL的版本。理想情況下,我想讓URL不以斜線結尾返回404(以避免規範頁面問題)。

什麼是使Grails創建URL的最好和最一般的方法:如上所述,結束斜線不會被刪除?

解決這個問題的一種方法是手動創建所有URL:但我不想這樣。

回答

5

不幸的是,grails URL映射機制並不那麼複雜。因此,雖然前向URL映射將運行良好(即從URL到控制器),但必須手動完成反向操作才能實現所描述的結果。

可能最好的方法是創建自己的標籤來輸出所需的鏈接。

1

如果您正在尋找創建groovy標籤的方式,那總是添加斜槓(/)添加url的結尾,最好的辦法是創建一個grails自定義tagLib,它可以創建鏈接,如g:鏈接做。

但我不知道是否停止導航的斜線與鏈接。

相關問題