1.execAndWait拦截器的配置方法
在struts.xml中按照以下格式写
<action name="..." class="...">
<interceptor-ref name="defaultStack">
</interceptor-ref>
<interceptor-ref name="execAndWait">
<param name="excludeMethods">input</param>
<!-- 等待时间,执行时间没有超过此值,将不显示等待画面 (毫秒) -->
<param name="delay">1000</param>
<!-- 间隔检查时间,检查后台进程有没有执行完毕,如果完成了它就立刻返回,不用等到等待,用户不会看到等待画面 -->
<param name="delaySleepInterval">50</param>
<resultname="wait">wait.jsp</result>
</interceptor-ref>
</action>
2.request,session为null的解决方法
因为这个action将会以单独的线程执行,所以你不能用ActionContext,因为它是ThreadLocal.这也就是说如果你要访问 session数据,你必须实现 SessionAware接口而不是调用ActionContext.getSesion() 。同理,要去到request要实现RequestAware接口。
public class SomeAction extends ActionSupport implements SessionAware, RequestAware{
protected Map<String, Object> session;
protected Map<String, Object> request;
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
@Override
public void setRequest(Map<String, Object> request) {
this.request = request;
}
}