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