我有一个 Groovy 类,MyRequest用于处理每个 HTTP 请求。在构造函数中,此类将实例变量 设置_session为request.getSession(true)(其中request是当前 HttpServletRequest)的值。
在我的 Groovy脚本中,我做的第一件事是创建MyRequest. session其次,我检查 Groovlet对象的特定属性。在我对脚本的第一次请求中,该session对象为空,因此我收到空对象引用错误。对脚本的第二次请求,session对象被定义并且没有发生错误。
根据Groovlet 文档,这种情况应该是意料之中的,因为在我的脚本session中检查了 Groovlet 的对象是否存在之后,我没有显式设置它。
我真的不想在我的脚本(以及项目中的任何未来脚本)中添加更多的复制粘贴代码。这是我创建对象的原因之一——为任何实例化它的脚本MyRequest定义对象。session那么,如何session在类中为我的 Groovy 脚本定义对象MyRequest?我可以metaClass以某种方式使用该对象吗?