为GSP中显示的数据生成文本(.txt)文件

时间:2015-03-21 17:12:42

标签: grails

我有一个在2.3.6开发的Grails应用程序

其中包含HTML和CSS元素的GSP文件,它在带有标题的多个表中显示数据。

我希望将这些数据保存到文本文件中并保存。基本上我想要做的是,在这个GSP页面中会有一个导出按钮,当用户点击它时,它将下载包含该GSP中所有数据的文本文件。

到目前为止我尝试了什么?

def textFile = {
    response.setHeader('Content-Disposition', 'Attachment;Filename="textFile.txt"')

    render view: 'textFile', contentType: 'text/plain'
}

上面的问题是,它不仅节省了数据,还节省了HTML& CSS元素。

我不想在文本文件中包含任何HTML或CSS。只需要来自GSP的数据。

是否有一种简单的方法。

1 个答案:

答案 0 :(得分:2)

答案很简单 - 你需要另一个没有html和css部分的视图。

其余代码看起来不错。但Grails本身不会转换您的视图,它只是将内容类型发送到浏览器,并且浏览器会尝试根据内容类型播放数据。

如果您不想编写新视图(在大多数情况下,编写新视图非常简单),您可以通过创建afterView编写自己的转换器(从文件中删除HTML和CSS) -Filter:http://grails.github.io/grails-doc/2.4.0/guide/single.html#filters

希望有所帮助