2013-03-08 65 views
2

我在过去曾使用过Grails Rendering Plugin,在创建PDF时取得了很大的成功。现在抛出我想用gsp创建一个简单的文本文件。我喜欢使用模型来轻松定义如何将信息插入到模板中。我意识到我不需要渲染一个文本文件,但是有没有类似的方式来使用模板来创建一个普通的文本文件?如何使用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

你可以看看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

0

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

0

我觉得你刚才创建的文本模板作为标准,与<克>标签等.. ,然后在contentType为'text/plain'的模板上调用标准grails render()函数。没有插件必要?

0

将以下代码添加到GSP文件中

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