We are currently migrating our application from struts 1 to struts 2 module wise and we are making use of the struts2-strut1 plugin.
Every things seems to be working fine, expect for file we are getting the file property value as NULL.
We have checked everything see below our tag looks like
JSP code Snippet
<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 Action form
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 mapping
<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>
We have added required jar see below:
commons-fileupload.jar
struts.jar
struts2-struts1-plugin.jar
struts2-core.jar (2.16)
commons-io2.2.jar
other required jars
There is no fileUpload
interceptor in your 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>