【问题标题】:File Upload not working in Struts2-Struts1 Plugin its setting NULL文件上传在 Struts2-Struts1 插件中不起作用 将其设置为 NULL
【发布时间】:2014-03-08 03:20:50
【问题描述】:

我们目前正在将应用程序从 struts 1 迁移到 struts 2 模块,并且我们正在使用 struts2-strut1 插件。

一切似乎都运行良好,期待文件我们将文件属性值设为 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

其他需要的罐子

【问题讨论】:

    标签: file-upload struts2 struts


    【解决方案1】:

    您的interceptor-stack 中没有fileUpload 拦截器。

     <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 ,它工作得很好..
    猜你喜欢
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    相关资源
    最近更新 更多