0

我有一个问题,只有在部署我的应用程序时才会出现问题 - 开发时没有问题。

我有 2 个控制器。一个控制器驻留在第二个正在扩展的 ia 插件中。视图文件夹中存在特定模板 -/templates/_mytemplate.gsp在“主”项目中 - 即不在插件中。

“common-controller”具有基于字符串呈现各种模板的方法。这就是麻烦开始的地方。使用:

String summary = groovyPageRenderer.render(template: "/mycontroller/templates/_mytemplates.gsp", model: [foo: bar])

在开发中工作得非常好,但在战争部署时,字符串是空的。我已将问题缩小到[1]中区分查找路径的resolveSearchPaths方法。DefaultGroovyPageLocator

任何人?什么是合理的解决方案?最好模板不在插件中....

4

2 回答 2

0

几天前我在发布时遇到了类似的问题,并使用了类似的东西:

try {
        //look for template in the main app
        def html = render(template:'/mycontroller/templates/mytemplates', model: [foo: bar])
        if(html && html.size() > 0) {
            render html
        }
    } catch (Exception e) {
        //bad way to handle template not found.
    }
    //fallback on the template defined in the plugin
    render(plugin:'myPlugin', template:'/mycontroller/templates/mytemplates', model: [foo: bar])

这可能不是处理此问题的最佳方法,但至少可以使部署的战争发挥作用。

于 2013-02-01T10:48:28.157 回答
0

傻傻傻傻!

在 Windows 上开发 - 部署到 Unix。所以忘记了驼峰式 T <- 它适用于 Windows 而不是 Unix :)

所以要让它工作:

String summary = groovyPageRenderer.render(template: "/mycontroller/templates/_my**T**emplates.gsp", model: [foo: bar])
于 2013-02-01T14:18:12.060 回答