文件上传在Struts2-Struts1插件中无效其设置NULL
问题描述:
我们正在将我们的应用程序从struts 1迁移到struts 2模块,并且我们正在使用struts2-strut1插件。文件上传在Struts2-Struts1插件中无效其设置NULL
每件事似乎都正常工作,期望文件我们正在获取文件属性值为NULL。
我们已经检查过了看到我们的标签下面的样子
JSP代码片断
<s:form name="uploadForm" namespace="/struts2" action="upload" enctype="multipart/form-data" method="post">
<s:file name="doc" cssClass="genTextValues"/>
<s:submit/>
</s:form>
的Java操作形式
public class UploadForm extends ActionForm {
private FormFile doc;
public FormFile getDoc() {
return doc;
}
// its not setting gives null in action form
public void setDoc(FormFile doc) {
this.doc = doc;
}
}
的struts.xml映射
<interceptor name="uploadForm" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor">
<param name="scope">request</param>
<param name="className">com.form.UploadForm</param>
<param name="name">uploadForm</param>
</interceptor>
<interceptor-stack name="iUploadForm">
<interceptor-ref name="staticParams" />
<interceptor-ref name="uploadForm" />
<interceptor-ref name="modelDriven" />
<interceptor-ref name="basicStack" />
</interceptor-stack>
<action name="uploadDoc" class="org.apache.struts2.s1.Struts1Action">
<param name="className">com.test.action.UploadAction</param>
<interceptor-ref name="iUploadForm"/>
<result name="Success" type="tiles">Success</result>
</action>
我们已经添加所需的jar见下图:
commons-fileupload.jar
struts.jar
struts2-struts1-plugin.jar
struts2-core.jar (2.16)
commons-io2.2.jar
其他所需的罐子
答
没有fileUpload
拦截在interceptor-stack
。
<interceptor-stack name="iUploadForm">
<interceptor-ref name="staticParams" />
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="uploadForm" />
<interceptor-ref name="modelDriven" />
<interceptor-ref name="basicStack" />
</interceptor-stack>
谢谢!!!我添加了拦截器,并将FormFile更改为java.io.file,它工作得非常好。 – coolcoder