【问题标题】:Accessing request object in src/groovy file in grails在 grails 中访问 src/groovy 文件中的请求对象
【发布时间】:2013-11-25 04:11:35
【问题描述】:

我们如何访问 grails 中src/groovy 文件中的请求对象。有可能吗?

我不想通过方法参数将请求对象从控制器传递给src/groovy文件,因为它是一个现有的框架,有没有其他方法可以做到这一点。

我只需要请求 ContentType。

如果在src/groovy 中无法获取请求对象,那么我打算将它放在ThreadLocal 类中并到达那里,这是个好主意吗?

【问题讨论】:

  • 为什么不能只传递内容类型?虽然不知道您实际在做什么,但我想知道您是否采用了最好的方法。

标签: grails


【解决方案1】:

我不明白您关于这是一个现有框架的观点 - 无论您将其更改为传递请求还是以更方便的方式访问它,您仍在更改它,对吧?

已经有一个 ThreadLocal 来保存它。添加此导入

import org.springframework.web.context.request.RequestContextHolder

然后你就可以访问请求了

def request = RequestContextHolder.currentRequestAttributes().request

【讨论】:

  • 非常感谢。这就是我要找的。​​span>
  • @burt 你能告诉我把这段代码放在哪里吗?我正在尝试类似的事情:stackoverflow.com/questions/24638637/…
  • 当我导入这个我得到跟随错误......构造函数抛出异常;嵌套异常是 java.lang.IllegalStateException:未找到线程绑定请求:您是指实际 Web 请求之外的请求属性,还是在原始接收线程之外处理请求?如果您实际上是在 Web 请求中操作并且仍然收到此消息,则您的代码可能在 DispatcherServlet/DispatcherPortlet 之外运行:在这种情况下,请使用 RequestContextListener 或 RequestContextFilter 来公开当前请求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-20
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
相关资源
最近更新 更多