grails - Grails 3.x渲染动态* .gsp模板

标签 grails render gsp

动态gsp模板是在我的 Controller 中创建的,它在开发环境中效果很好,但是在生产环境中不能工作。像这样的代码:

def index() {
    def k = Math.round(Math.random() * 100)
    def nowPath = this.class.getResource("/").getPath()
    def controllerName = this.controllerName
    def fileName = "${nowPath}${controllerName}/_${k}.gsp"

    def viewString = new StringWriter()
    def builder = new MarkupBuilder(viewString)
    builder.setDoubleQuotes(true)
    builder.div(id: "create-dataItem", class: "content scaffold-create", role: "main") {
        "g:uploadForm"(controller: "operation4Data", action: "saveDataItem") {
            h1("第${k}次测试")
            h1("test:\${test}")
        }
        def outString = viewString.toString()
        def printer = new File(fileName).newPrintWriter('utf-8')    //写入文件
        printer.println(outString.toString())
        printer.close()

        def test = new Date()
        def view = "${k}"
        render(template: "${view}", model: [test: test, k: k])
    }
}

最佳答案

在开发模式下它有效,因为grails会根据您的更改( Controller ,服务,gsps等)动态更新应用程序。

我不确定您的需求,但也许您只是想动态呈现 Controller 的响应而无需模板。该文档的part(“呈现响应”部分)可能会有所帮助

render {
   for (b in books) {
      div(id: b.id, b.title)
   }
}

关于grails - Grails 3.x渲染动态* .gsp模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53302128/

相关文章:

grails - 数据库中的属性

javascript - 如果键保持不变,但其他值发生变化,如何重新渲染?

json - Grails将LinkedHashMap转换为RoundTrip上的JSON保留顺序

grails - <g:currency Select>仅显示货币的简称。是否有任何方法可以将longName包含在此标签中?

angularjs - 如何在 Angular JS 中使用 Grails 消息代码标签

spring - 在 grails 中更改 Spring Security 插件的登录页面

grails - 如何将样式添加到SubmitToRemote的value属性?

grails - 如何搜索内部类?

android - 在当前主题中找不到 '@attr/shapeAppearanceSmallComponent'

放大后的 iOS 文本渲染