我必须在 Struts2 中的选定操作上使用加载栏,并且正在使用ServletActionContext
,但正在获取NullPointerException
.
ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
如果我execAndWait
从 xml 配置文件中删除拦截器,它工作正常。
有人建议我使用SessionAware
. 为什么这样 ?
有什么解决办法吗?
我必须在 Struts2 中的选定操作上使用加载栏,并且正在使用ServletActionContext
,但正在获取NullPointerException
.
ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
如果我execAndWait
从 xml 配置文件中删除拦截器,它工作正常。
有人建议我使用SessionAware
. 为什么这样 ?
有什么解决办法吗?
当您通过拦截器ActionContext
运行后台线程时ThreadLocal
,它没有请求对象。execAndWait
如果您使用SessionAware
,那么您应该在堆栈上有servletConfig
拦截器,以便能够在执行操作之前将会话对象设置为您的操作。
解决方案:如果您可以ServletRequestAware
将请求对象设置为操作并 在堆栈中servletConfig
的拦截器之前使用拦截器。execAndWait
如果您需要创建自定义堆栈,则应保持顺序。