2013-01-10 69 views
0

有一個Grails 2.1的應用程序,在那裏我有用於渲染的不同控制器的概要的標記庫,我有一個問題,在正確的視圖文件夾指向。的Grails到控制器相對路徑查看文件夾

EG。 TestAControllerTestBController都具有在其各自的視圖文件夾稱爲summary.gsp控制器特定視圖文件。那就是/testa/summary.gsp/testb/summary.gsp

如何將我的標籤庫渲染當前在行動相關的控制器summary.gsp - 我需要設置一個路徑像"??/summary-gsp"

我不想執行任何if/else邏輯,因爲可能有10000個控制器使用此taglib,全部指定它們自己的summary.gsp

這是可行的嗎?

回答

1

你可以在你的taglib所以訪問params對象:

out << render(template: "/${params.controller}/summary") 
0

調用者應在路徑傳遞給模板作爲參數的標籤。如果省略此參數,則可以使用約定來定位模板,例如

class MyTagLib { 

    def renderSummary = {attrs -> 

    def defaultTemplatePath = "/${params.controller}/summary" 
    def templatePath = attrs.template ?: defaultTemplatePath 
    out << g.render(template: templatePath) 
    } 
}