【发布时间】:2014-04-18 10:23:01
【问题描述】:
我正在开发一个 struts2 (2.1.8) 网络应用程序。我想使用 execAndWait 拦截器,以便在处理上传的文件时显示等待页面。
解决线程问题 (execAndWait Interceptor not redirecting to success page after waiting) 后,我没有 NPE 访问 getText() 方法,我仍然遇到一些问题。
如果调试操作执行,所有 jsp 表单变量(包括上传的文件)都可以(使用调试检查器,我可以看到文件路径、内容类型、文件名),但文件不在目录中必须是:
C:\apps\apache-tomcat-6.0.39\work\Catalina\localhost\validador\upload_24cd6d23_a0ec_4887_a47c_7af1f5b703d1_00000002.tmp
我也读过这篇文章: Cannot find file source when processing file with execAndWait interceptor of struts-jquery
但我已经声明了一个自定义拦截器堆栈,包括默认堆栈:
<interceptors>
<interceptor name="execAndWaitExtended" class="aoc.interceptor.myExecuteAndWaitInterceptor"></interceptor>
<interceptor-stack name="waitStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="execAndWaitExtended" />
</interceptor-stack>
</interceptors>
我的行动声明:
<package name="default" namespace="/" extends="struts-default" >
...
<action name="uploadUpdatePDF" class="aoc.action.signature.UpdatePDFUpload">
<interceptor-ref name="waitStack"/>
<result type="tiles" name="input">tilesDef.validacioUpdatePDF</result>
<result name="wait">pages/wait.jsp</result>
<result type="tiles" name="sucess">tilesDef.validacioUpdatePDFResult</result>
</action>
了解 Thread 问题已解决,上传文件的文件名或文件路径似乎可以调试,我不明白为什么文件实际上没有存储在服务器目录中(并且在添加 execAndWait 拦截器之前它工作正常)。
有什么建议吗?
【问题讨论】:
标签: java struts2 interceptor