为什么我们不能使用ServletActionContext使用execAndWait拦截器?

时间:2014-12-12 10:35:09

标签: java struts2 thread-local struts2-interceptors actioncontext

我必须在Struts2中选择的操作使用加载栏,&我正在使用servletActioncontext,但获得NullPointer异常

ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);

如果我从xml文件中删除execAndWait拦截器,它可以正常工作,

有些人建议我使用sessionAware,为什么会这样?

有没有解决方案?

1 个答案:

答案 0 :(得分:1)

ActionContextThreadLocal,当您通过execAndWait拦截器运行后台线程时,它没有请求对象。如果使用SessionAware,那么堆栈上应该有servletConfig拦截器,以便能够在执行操作之前将会话对象设置为您的操作。解决方案:如果您可以ServletRequestAware为操作设置请求对象,并在堆栈中的servletConfig拦截器之前使用execAndWait拦截器。如果您需要创建自定义堆栈,则应保留订单。