以下操作旨在写入二进制内容bytes
完全绕过 Grails 视图层直接到客户端:
def actionName = {
byte[] bytes = ...
ServletOutputStream out = response.getOutputStream()
out.write(bytes)
out.flush()
out.close()
return false
}
我的印象是return false
会让 Grails 完全跳过视图层。然而,情况似乎并非如此,因为上面的代码仍然使 Grails 搜索/WEB-INF/grails-app/views/controllerName/actionName.jsp
(失败并返回 404,因为不存在这样的文件)。
问题:
- 鉴于上面的代码,我如何完全绕过 Grails 中的视图层?
您应该返回 null 或根本不返回任何内容,这将被解释为 null。以下是发送动态生成的 PDF 的操作的一些工作代码:
def pdf = {
byte[] content = ...
String filename = ...
response.contentType = 'application/octet-stream'
response.setHeader 'Content-disposition', "attachment; filename=\"$filename\""
response.outputStream << content
response.outputStream.flush()
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)