绕过 Grails 视图层直接将二进制内容写入客户端

2023-12-29

以下操作旨在写入二进制内容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(使用前将#替换为@)

绕过 Grails 视图层直接将二进制内容写入客户端 的相关文章

  • Grails Spring 安全角色和组

    我已经配置了我的 spring security 来与组一起工作 我使用此脚本来创建域类 grails s2 quickstart com yourapp User Role groupClassName RoleGroup 我假设一个用户
  • 使用 GORM 根据子表中的列进行排序?

    我有一个名为员工和子表地址的表 现在我想使用 GORM 获取地址表中按地址1排序的员工列表 Employee findAllByName name max maxRecords offset 100 sort Address address
  • 从 IntelliJ 调试 Grails 应用程序

    我一直在努力从 IntelliJ 内部调试 Grails 2 5 0 应用程序 具体来说 我发现很难配置该应用程序 以便 功能测试可调试 可以运行功能测试 该应用程序可以调试 该应用程序可以运行 当 1 和 2 从 IntelliJ 版本
  • 如何自定义 Grails Spring Security Core 2 登录/注销控制器和视图?

    我正在使用新的 Grails Spring Security Core 2 0 插件 并且想知道如何自定义登录视图和 LoginController LogoutController 该插件的早期版本生成了这些文件 但现在看来我必须将它们从
  • 在 Eclipse (Spring Source) 中,Grails 始终以生产模式构建

    当在 Grails 项目中使用 Eclipse 时 战争的构建似乎陷入了生产模式 如果您想部署到附加的 tcServer 您只需右键单击您的项目 然后选择 运行方式 gt 在服务器上运行 如果您将 grails 项目设置为 dev 右键单击
  • 将结果行强制转换为对象

    有没有办法将调用存储过程获得的结果行强制转换为特定对象 以便我可以仅将该对象的列表传递到视图中 我知道我可以使用 Node list 之类的东西来做到这一点 但我最终将用一个相当复杂的存储过程替换 getnodes 该存储过程创建临时表并执
  • 执行 grails/groovy 时,Linux 上没有可用的控制台输出

    当执行 groovy 脚本或 grails 应用程序时 没有可用的输出 输入 gt 只有一个清晰的控制台屏幕 即使不启动 X Window System 输出也是不可见的 我也尝试过 grailscompile plain output 也
  • 如何在grails中自定义spring security插件登录页面

    我尝试在 Spring Security Core 3 1 1 中自定义登录页面 但没有成功 我在views目录中创建了一个登录目录 并在登录目录中创建了一个auth gsp 并将我的自定义表单放在那里 这是代码
  • 如何对 Grails 应用程序进行并发修改测试

    我想运行测试来模拟用户同时修改 Grails 应用程序的某些数据 我可以使用任何插件 工具 机制来有效地做到这一点吗 它们不必是特定于 grails 的 应该可以并行触发多个操作 我更愿意在功能级别上运行测试 到目前为止我正在使用 Sele
  • 从 Glassfish 取消部署 Grails 应用程序会发生类不变性违规

    我有一个在 Glassfish 中运行的 Grails 应用程序 但是当我取消部署时 它会出现 违反类不变性 快速查看堆栈跟踪并在网络上搜索报告 这是 Log4j 的问题 我当时使用的是最新的log4jlog4j 1 2 16 jar 任何
  • Grails - 错误分叉 Grails VM 因错误退出

    首先 我想说 我是 Grails 的初学者 在尝试遵循一些示例时 我不断收到无法解决的错误 如果问题很愚蠢 那么很抱歉 我通过命令行创建了一个虚拟应用程序 并尝试以相同的方式运行它 run app 但出现以下错误 运行 Grails 应用程
  • 空白约束和空约束之间的区别

    空白约束和空约束有什么区别 我有以下课程 class Task String title String notes TekUser assignedTo Date dueDate TekEvent event static constrai
  • 转换 Java -> Grails ... 如何加载这些属性?

    我正在将 Java Web 应用程序转换为 Grails 1 2 1 在我的 Java 应用程序中 我有一个从 properties 文件加载属性的单例 我已经看到我可以将其加载到 Config groovy conf 文件中 如果我的属性
  • Grails - 如何对 addTo* 进行单元测试

    是否可以在 Grails 中对 addTo 函数进行单元测试 感谢您的帮助 文档第 9 1 节中说 http grails org doc latest guide 9 20Testing html 9 1 20Unit 20Testing
  • Grails transactionManager 运行时出现异常

    当编译一个grails v2 3 3项目运行项目时出现以下错误Netbeans 7 4 Loading Grails 2 3 3 Configuring classpath Configuring classpath Environment
  • 修改String字段的getter的返回值

    假设我的应用程序中有一些类似于域类的类 其中包含一些 Long Double Date 和 String 字段 这些类使用一些公共字段和一些公共方法扩展了基类 每当我访问 String 类字段 通过 getter 时 我想对返回的值进行一些
  • 在 Grails 中创建一个新的资源包?

    我想创建另一个资源包来组织我的 Grails 应用程序 Grails 提供了一个 messages 资源包 我需要创建一个 myApp 资源包 如何创建新的资源包并使用 g message GSP 标记读取其属性 你必须创建一个beangr
  • Grails、Spring Security Core - 从应用程序中删除 /login/auth

    我在 Grails 应用程序中安装了 Spring Security Core 并使用s2 quickstart 我想要 来处理登录和注销操作 对我来说 这意味着未登录的用户只能访问根页面 而不能访问其他页面 实际上 对于没有角色 ROLE
  • 或者在 Grails 2.3.8 的namedQueries 中:AbstractMethodError

    从 Grails 2 2 4 升级到 2 3 8 后 我得到 java lang AbstractMethodError grails orm HibernateCriteriaBuilder or Lgroovy lang Closure
  • GStringImpl 无法转换为 java.lang.String

    我使用 Grails 和 Spring Security 时收到以下错误 还有其他人遇到过这样的问题吗 如果是这样 你的解决办法是什么 Error Exception in thread Thread 15 Error java lang

随机推荐

  • Xamarin Forms、Sqlite、EF Core 3、迁移和许多混乱

    我有一个 Xamarin Forms 应用程序 我已从仅使用 Restful API 切换为使用本地 SQLite DB 它将使用此进行同步Dotmim Sync 数据库同步框架 https mimetis github io Dotmim
  • 原子基团和非捕获基团有什么区别?

    什么是原子团 gt expr 以及它的用途是什么 在https www regular expressions info atomic html https www regular expressions info atomic html
  • 如何在 JavaScript 中迭代数组并删除元素[重复]

    这个问题在这里已经有答案了 我有一个元素数组 需要从中删除某些元素 问题是 JavaScript 似乎没有 foreach 循环 如果我使用 for 循环 我会遇到问题 它基本上试图检查超出数组边界的元素 或者由于索引更改而丢失数组中的元素
  • Python 将对象列表序列化为 JSON [重复]

    这个问题在这里已经有答案了 我正在尝试序列化为 JSON dict 一个对象的实例 工作正常 直到我将对象附加到第一个对象的实例属性之一 from json import dumps class A object def init self
  • 将 Spring Boot 应用程序部署到 Elastic Beanstalk 时出现 502 Bad Gateway

    免责声明 我知道对此有很多问题 我已经查看了它们并应用了答案 但它仍然不起作用 我使用 jar 不是 war 文件将 Spring Boot 应用程序部署到 Elastic Beanstalk 我正在使用Java 1 8 我将 applic
  • yii2 - 模型加载函数未设置某些模型属性

    我正在开发 PHP Yii2 应用程序 我在 yii2 上遇到了一个奇怪的问题yii base Model load功能 这是我的问题 我有一个名为的表单模型PaymentIncreaseBalanceForm像下面这样 class Pay
  • 如何获得 Elm 风格

    我从 Elm 开始 当你想设置样式时 你可以简单地将它嵌入到你的组件中 Html Attribute style List String String 但我找不到办法get样式而不是设置 其实我需要的是line height特定的 CSS
  • Vue SSR 将 Express 服务器与 vue 应用程序捆绑在一起,以便可以从复制到主机服务器的 build dist 文件夹运行该应用程序

    我创建了一个 Vue SSR 应用程序 我读过的所有说明 wiki 博客仅告诉您如何在开发环境中运行该应用程序 他们不会告诉您如何在生产环境中运行应用程序 我之前在 React SSR 应用程序中编写过相同的应用程序 在该应用程序中 构建会
  • 使用 OpenAL 在 iOS 上离线录音

    我正在使用 openAL 以特定的时间间隔播放声音样本 我想将其导出到文件 无论是 caf 或 aac 或其他文件 如何使用 OpenAL 做到这一点 而不需要通过扬声器 耳机实时播放我的样本 如果您正在谈论将乐谱导出为完整的音频片段 Op
  • 如何在 ajax 调用完成之前阻止页面导航

    因此 我有一个 ajax 调用来获取几十个大小为几兆字节的数据块 然后通过 html5 文件系统 api 将数据存储在本地 我想阻止用户在 ajax 调用完成之前离开页面 我决定探索onbeforeunload事件 让它通知用户应该停留在页
  • 如何在 Android 手机中使用语音识别而不出现烦人的对话框

    不修改android API 可以实现吗 我找到了一篇关于此的文章 有人评论说我应该对 android API 进行修改 但没有说如何修改 有人可以给我一些关于如何做到这一点的建议吗 谢谢 我找到了这篇文章 语音识别器 https stac
  • 对“Class::Class()”的未定义引用

    我正在编写一个GTKmm窗口程序 主窗口创建两个按钮 一个用于英语 一个用于中文 用户可以单击该按钮以显示适当语言的不同窗口 目前 我在初始化主窗口内的多项目容器时遇到问题 它是一个MainWindowPane类型的对象 它继承了Gtk H
  • 更新 npm start 后 Angular cli 出现错误

    我使用 Angular cli 创建应用程序并使用后端代理来处理后端并使用聚合物 vaadin 它可以正常工作 直到我更新到 Angular cli 1 0 0 beta 22 它给出错误 Tried to find bootstrap c
  • System.IO.File.ReadAllText 不会因无效编码而引发异常

    我的文件中有一些 UTF 8 文本utf8 txt 该文件包含一些 ASCII 范围之外的字符 我尝试了以下代码 var fname utf8 txt var enc Encoding GetEncoding ISO 8859 1 Enco
  • 如何查看android中真实连接的互联网?

    我做了一个程序 我必须使用wifi来连接互联网 我找了一些资料来检查wifi是否连接 但在某些情况下 你可以连接wifi AP 但仍然无法上网 比如wifi需要账号和密码进行https认证 或者wifi AP无法上网 那么 如何查看真实的互
  • jQuery fadeIn 和 fadeOut - 交换 div

    总的来说 我对 jQuery 和 javascript 很陌生 但感谢这些网站 我才得以顺利通过 我有一个页面 其中有六个隐藏的 div 通过带有各个 id 的相应链接进行调用 当每个 div 变得可见 fadeIn 时 当前显示的 div
  • 如何本地化 Info.plist 文件中 CFBundleDisplayName 的值?

    当我查看 Xcode 中的 Info plist 文件时 属性列表编辑器向我显示一个看起来像变量的值 PRODUCT NAME 如何 在哪里为我的应用程序设置本地化名称 您可以创建一个名为 InfoPlist strings 的本地化文件
  • 自定义 Jackson 解组行为

    我正在使用 Jackson fastxml 来解组 JSON 在我的对象中有两种属性 输入属性和计算属性 在输入 JSON 中 我仅获得输入值 计算值实际上取决于输入值 我必须在引用对象之前填充这些值 所以我只是检查杰克逊是否提供了任何钩子
  • 是从 Sencha Touch 2 开始比较好,还是从 Sencha Touch 1.x 开始比较好?

    我最近使用 PhoneGap 构建了一个演示应用程序 并选择尝试使用 JQuery Mobile 作为 UI 框架 这是 好吧 我现在想尝试一下 Sencha Touch 看看我是否更喜欢它 截至目前 2011 年 12 月中旬 Sench
  • 绕过 Grails 视图层直接将二进制内容写入客户端

    以下操作旨在写入二进制内容bytes完全绕过 Grails 视图层直接到客户端 def actionName byte bytes ServletOutputStream out response getOutputStream out w