我正在处理grails应用程序,并努力将文本呈现到文件中。目前,我可以使用下面的函数将文本渲染到屏幕上:
def generateTemplateSQL(Template templateInstance){
def result = templatingService.buildTemplateSql(templateInstance)
render result
}
现在我希望能够将相同的文本打印到文件中,这就是我在下面的内容。但是,我为此功能创建的前端按钮一旦按下就会导致404错误。我猜我有些不合时宜的东西。有什么想法吗?
def writeTemplateSQLToFile(Template templateInstance){
def result = templatingService.buildTemplateSql(templateInstance)
render (file: new File(result), fileName: "TemplateSQL.met", contentType: "text/met")
}
答案 0 :(得分:0)
render (file: new File(..), fileName: "TemplateSQL.met" ...)
从服务器的文件系统中读取给定文件,并将其作为响应发送给客户端。在您的情况下,result
变量应表示文件系统上“TemplateSQL.met”文件所在位置的绝对路径。
我不认为这是你的情况。如果要将结果变量的内容保存到文件,请使用FileOutputStream
答案 1 :(得分:0)
试试这个:
def writeTemplateSQLToFile(Template templateInstance){
def result = templatingService.buildTemplateSql(templateInstance)
response.setHeader("Content-disposition", "filename=TemplateSQL.met")
response.contentType = 'text/met'
response.outputStream << result
response.outputStream.flush()
}