如何使用gsp模板创建文本文件?

时间:2013-03-08 19:43:48

标签: grails plugins groovy io

我过去曾使用Grails Rendering Plugin在创建PDF方面取得了很大成功。现在我想创建一个简单的文本文件,使用gsp。我喜欢使用模型来定义如何将信息插入模板的简易性。我意识到我不需要渲染文本文件,但有没有类似的方法来使用模板来创建一个普通的文本文件?

如何使用Grails渲染插件渲染jpg的示例:(注意模型的使用)

    def bytes = gifRenderingService.render(template: '/images/coupon', model: [serial: 12345])
// Render to a file
    new File("coupon.jpg").withOutputStream { outputStream ->
        jpegRenderingService.render(template: '/images/coupon', model: [serial: 12345])
    }

如果没有像上面示例那样的简单方法,由于我的信息来自多个域类,我应该在我的gsp模板中创建基于所需条件的<g>标记吗?如果是这种情况..如何从我的服务中将变量插入我的gsp模板?

4 个答案:

答案 0 :(得分:4)

您可以查看grails.gsp.PageRenderer实用程序类。它允许您将.gsp模板渲染为String

String gspOutput = groovyPageRenderer.render(view: '<your view>.gsp', model: [ modelObj1: ... ])

...或直接发送到WriterOutputStream

groovyPageRenderer.renderTo(view: '<your view>.gsp', model: [ modelObj1: ... ], <writer or OS>)

可以在此处找到更多详细信息:http://mrhaki.blogspot.com/2012/03/grails-goodness-render-gsp-views-and.html

答案 1 :(得分:0)

要将模板呈现为文本文件,您应该将响应的内容类型设置为text / plain

答案 2 :(得分:0)

我认为您只是将标准文本模板创建为&lt; g&gt;标签等...然后在模板上调用标准grails render()函数,其contentType为'text / plain'。没有必要的插件?

答案 3 :(得分:0)

将以下代码添加到GSP文件

<%@page contentType="text/plain"%>