我过去曾使用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模板?
答案 0 :(得分:4)
您可以查看grails.gsp.PageRenderer
实用程序类。它允许您将.gsp模板渲染为String
:
String gspOutput = groovyPageRenderer.render(view: '<your view>.gsp', model: [ modelObj1: ... ])
...或直接发送到Writer
或OutputStream
:
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"%>