【问题标题】:Grails relative path to controllers view folderGrails 控制器视图文件夹的相对路径
【发布时间】:2013-01-11 00:06:59
【问题描述】:

有一个 Grails 2.1 应用程序,我有一个标签库来为不同的控制器呈现摘要,但我在指向正确的视图文件夹时遇到了问题。

例如。 TestAControllerTestBController 在各自的视图文件夹中都有一个名为 summary.gsp 的控制器特定视图文件。那是/testa/summary.gsp/testb/summary.gsp

我的 taglib 如何渲染与当前正在运行的控制器相关的 summary.gsp - 我需要设置类似 "??/summary-gsp" 的路径。

我不想实现任何 if/else 逻辑,因为可能有 10000 个控制器使用这个 taglib,都指定了自己的 summary.gsp

这可行吗?

【问题讨论】:

    标签: grails taglib


    【解决方案1】:

    你可以在你的 taglib 中访问 params 对象:

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

    【讨论】:

      【解决方案2】:

      调用者应该将模板的路径作为参数传递给标签。如果省略此参数,您可以使用约定来定位模板,例如

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 2016-01-20
        相关资源
        最近更新 更多